PHP Lumen Content Negotiation
Tutorial ini melanjutkan project dari tutorial
sebelum nya dengan nama ‘PHP Lumen Rest CRUD. Kita akan membuat service
menggunakan PHP Lumen yang bisa melakukan Content Negotiation. Tujuan praktek
ini adalah untuk:
- Mampu implementasi Content Negotiation menggunakan Lumen
- Membuat service yang bisa mem-validasi Accept header request. Accept header yang diterima adalah:
-
application/json
-
application/xml
- Membuat service yang bisa mem-validasi Content-Type header request. Content-Type header yang diterima adalah:
-
application/json
- Accept Header dikirim ketika melakukan fungsi GET (Read), POST (Create), PUT (Update), DELETE (Delete)
- Content-Type Header dikirim ketika melakukan fungsi POST (Create), PUT (Update)
Prasyarat
Harus menyelesaikan dulu modul dengan judul
‘PHP Lumen Rest CRUD.
Endpoint
Dibawah ini adalah Endpoint yang akan
implementasikan berdasarkan Restful API Design:
Method (HTTP Verbs)
|
Endpoint
|
Header Content Negotiation
|
GET
|
/posts
|
Accept
|
GET
|
/post/{postId}
|
Accept
|
POST
|
/users
|
Accept, Content-Type
|
PUT
|
/post/{postId}
|
Accept, Content-Type
|
DELETE
|
/post/{postId}
|
Accept
|
Pertama yang harus dilakukan adalah mendownload terlebih dahulu library dari xml menggunakan composer.
Method Create
Lanjut modifikasi method store, dan kita akan tentukan format response berdasarkan Acccept Header. Maksudnya bagaimana ? jadi ketika accept header kita set value nya menjadi application/json, maka response akan berbentuk format json, sedangkan ketika kita set value nya menjadi application/xml, maka response dalam bentuk xml. Langsung saja kita arahkan ke method store, dan modifikasi script menjadi berikut.
buka PostController.php
Coba di Postman dan atur methodnya menjadi POST isi tab Body->Form Data seperti gambar dibawah ini
Setelah itu kita perlu mengisi parameter di bagian headers dengan key 'accept' yang aplikasinya
'application/json'
atau 'application/xml'
Selanjutnya mengubah methode Show,Create dan Delete
Method Show
pastikan seperti dibawah ini
Lakukan test tanpa parameter Accept Header.
Test menggunakan parameter application/json
Test menggunakan parameter application/xml
Method Update
Pastikan seperti dibawah ini
Lakukan test tanpa parameter Accept Header.
Test menggunakan parameter application/json
Test menggunakan parameter application/xml
Methode Destroy
Pastikan seperti dibawah ini
Lakukan test tanpa parameter Accept Header.
Test menggunakan parameter application/json
Test menggunakan parameter application/xml
Selanjutnya kita akan mengimplementasikan Content-Type Header pada function update, maka dari itu selain perlu parameter Accept, kita juga akan menerapkan parameter Content-Type, pertama kita kunjungi method update kemudian modifikasi scriptnya seperti berikut.
Dan 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 di postman, masuk ke tab body, kemudia klik raw, ketikkan format json dalam bentuk key dan value untuk melakukan perubahan pada table posts id . Maka response akan seperti berikut karena belum kita beri parameter di headers nya.
setelah itu kita berikan parameter Accept di headernya, maka response akan seperti berikut.
Coba ubah parameter Accept dan juga Conten-Type nya menjadi application/json. Dan hasilnya seperti ini
coba ubah parameter Accept dan juga Conten-Type nya menjadi application/xml. Dan hasilnya seperti ini
Alhamdulillah Selesai
Komentar
Posting Komentar