PHP LUMEN CONTENT NEGOTIATION
PHP Lumen Content Negotiation
DI tutorial kali ini akan menjelaskan tentang content negotiation, Jadi Content Negotiation adalah mekanisme untuk memilih resource representation yang sesuai ketika melayani HTTP request, mekanisme ini memberikan kemampuan kepada Server untuk memahami jenis data apa yang diterima dan format response apa yang diharapkan oleh Client.
Jenis data yang akan kita buat yaitu dalam bentuk JSON atau XML. Langsung saja kita modifikasi yang telah kita buat sebelumnya.Pertama yang akan kita lakukan adalah mendownload terlebih dahulu library dari xml menggunakan composer.
Lalu modifikasi method store, jadi akan menentukan format response berdasarkan Accept Header
Lakukan test pada aplikasi Postman, masukkan URL endpoint untuk melakukan fungsi store, atur method nya menjadi POST. Masuk ke tab body lalu isi key dan value dari setiap field nya

Lalu klik Send, dan ini hasilnya

Mengapa demikian ? karena kita telah memberikan kondisi dimana perlu adanya parameter tambahan dibagian Headers dengan key ‘Accept’ yang value nya ‘application/json’ atau ‘application/xml’. Untuk itu kita masuk ke tab header lalu isi parameter Accept nya application/json.

Sekarang kita coba ubah valuenya menjadi ‘application/xml’.

Maka response yang muncul dalam bentuk xml seperti berikut.

Method Show

Lakukan test tanpa parameter Accept Header.

Masukkan parameter application/json.

Masukkan parameter application/xml.

Method Update

Lakukan test tanpa parameter Accept Header.

Masukkan parameter application/json.

Masukkan parameter application/xml.

Method Destroy

Lakukan test tanpa parameter Accept Header.

Masukkan parameter application/json.

Masukkan parameter application/xml.

Selanjutnya kita akan mengimplementasikan Content-Type Header pada function update, pertama kita kunjungi method update kemudian modifikasi scriptnya seperti berikut.

Jadi setelah kita cek parameter Accept nya, kita pun cek parameter Content-Type nya. Jika tidak ada parameter Content-Type, maka responnya adalah Unsupported Media Type. Kita lakukan test pada postman, masuk ke tab body, kemudia klik raw, ketikkan format json dalam bentuk key dan value untuk melakukan perubahan pada table posts id 12. Maka response akan seperti berikut karena belum kita beri parameter di headers nya.

Sekarang kita berikan parameter Accept di headernya, maka response akan seperti berikut.

Maka sekarang kita tambahkan parameter Content-Type, sehingga response akan seperti berikut.

Selanjutnya kita coba untuk response xml, hapus parameter headers terlebih dahulu, kita coba buat format json yang baru, maka response akan seperti berikut.

Ketika kita tambahkan parameter Accept pada header, maka response akan seperti berikut.

Selanjutnya tambahkan parameter kedua Content-Type, maka response akan seperti berikut.

Sekian untuk tutorial kali ini, semoga bermanfaat.
Comments
Post a Comment