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 :
[
{
"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
},
]
urlpatterns = [path('api/v1/property/',views.Property145Listings.as_view(), name='property-listings'),
]
from rest_framework import serializersclass 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.
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
)
postman get data serializer
postman post data serializer
agar kamu lebih memahami tentang serializer django rest framework download full source di link ini :
link download source : https://github.com/alfinfanther/sampleserializer
link video tutorial : https://youtu.be/rqVfxWNip-A
baca artikel lainya :