Membuat Serializer Django Rest Framework

Subscribe Dengan Account Google Untuk Membaca Artikel Tanpa Iklan
Membuat Serializer Django Rest Framework

Serialization adalah suatu proses mengubah objek menjadi byte stream, agar bisa disimpan dalam file, memori ataupun berguna dalam proses transmisi data.

Serializer memungkinkan data yang kompleks seperti queryset dan contoh model untuk dikonversi ke tipe data Python, yang kemudian dapat dengan mudah dirender menjadi JSON, XML atau tipe konten lainnya. Serializer juga menyediakan deserialisasi, memungkinkan data yang diurai dikonversi kembali menjadi tipe kompleks, setelah terlebih dahulu memvalidasi data yang masuk.

Serialisator dalam kerangka kerja REST sangat mirip dengan kelas Form dan ModelForm Django. Django menyediakan kelas Serializer yang memberi Anda cara yang kuat dan generik untuk mengontrol output dari respons Anda, serta kelas ModelSerializer yang menyediakan jalan pintas yang berguna untuk membuat serializer yang berhubungan dengan instance model dan querysets.

baca tentang : berkenalan dengan django rest framework

Sebelum mengkuti tutorial ini, pastikan bahwa kamu telah berada pada mode environment.

Kembali kepokok bahasan kita tentang serializer, serializer ibarat petugas imigrasi yang menyeleksi boleh tidaknya sesorang untuk masuk kesebuah negara. sebelum masuk kesebuah negara seseorang harus lengkap dulu persyaratan seperti pasport, visa dan dokumen terkait lainya, demikianlah gambaran tentang serializer. Serializer akan memvalidasi data yang masuk, apakah sesuai dengan requirement atau tidak, jika ada yang tidak sesuai serializer akan memberikan informasi sebuah pesan error.

Studi kasus pada materi kali ini, kita akan membuat sebuah RestApi yang menampilkan listing property, dengan method GET dan POST. Perhatikan table of content di bawah ini :


  • Data Source

  • url

  • Class Serializer

  • Get dan Post Data

  • Test Data


Data Source


sebagai bahan pembelajaran perhatikan data listing property dibawah ini.

[
{
"id":1,
"title":"Rumah murah di cilejit",
"content":"Kota baru dengan area hijau dan ruang terbuka lebih dari 30% dan danau seluas 20 hektar. Modernland Cilejit menawarkan keseimbangan hidup bersama keluarga dan orang terkasih dengan fasilitas Water Park, Theme Park, dan Edu Park. Modernland Cilejit juga menawarkan kemudahan sehari-hari dengan akses langsung ke KRL Cilejit.",
"host":"property145.com",
"type_property":"rumah",
"harga":192000000

},
{
"id":2,
"title":"Apartemen Urbantown Serpong Tower 2 ",
"content":"URBANTOWN - Serpong berlokasi di area segitiga emas Tangerang Selatan tepatnya jalan Sarua, dekat dengan BSD & Serpong sebagai Commercial and Lifestyle Area. Memiliki hunian di URBANtown - Serpong menjadikan nilai Investasi yang menguntungkan.",
"host":"property145.com",
"type_property":"Apartemen",
"harga":220000000
},
]

URL



urlpatterns = [

path('api/v1/property/',views.Property145Listings.as_view(), name='property-listings'),

]



Serializer


dari list sample data diatas, buat sebuah class serializer, perhatikan kode di bawah ini:

from rest_framework import serializers

class RumahSerializer(serializers.Serializer):
id = serializers.IntegerField()
title = serializers.CharField(max_length=200)
content = serializers.CharField(max_length=500)
host = serializers.CharField(max_length=50)
type_property = serializers.CharField(max_length=20)
harga = serializers.IntegerField()

setiap object memiliki type data seperti integer dan string, ini adalah salah satu cara untuk memfilter data yang masuk melalui method post.

Get dan Post Data


buat sebuah class untuk memproses GET dan POST data, perhatikan kode dibawah ini

class Property145Listings(APIView):
parser_classes = (JSONParser,)
renderer_classes = (JSONRenderer,)

def get(self, request, format=None):
serializer = RumahSerializer(listing_property, many=True)
return Response(JSONRenderer().render(serializer.data),content_type="application/json", status=200)

def post(self, request, format=None):
serializer = RumahSerializer(
data=request.data
)
if not serializer.is_valid():
return Response(data=serializer.errors, status=400)

data = serializer.validated_data.get
message = "data not found"
try:
id=data('id')
for x in listing_property:
if x['id'] == id:
message = "data found"

except Exception as e:
return Response(
data={'errors': str(e)}, status=404
)
return Response(
data={'message': message}, status=200
)

Test Data


untuk melakukan testing kamu bisa memanfaatkan postman

postman get data serialize postman get data serializer

postman post data serializer postman post data serializer

agar kamu lebih memahami tentang serializer django rest framework download  full source di link ini :

link download sourcehttps://github.com/alfinfanther/sampleserializer

link video tutorialhttps://youtu.be/rqVfxWNip-A

baca artikel lainya :