-->

Interoperability (Web Service) - 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:

1. Mampu implementasi Content Negotiation menggunakan Lumen
2. Membuat service yang bisa mem-validasi Accept header request. Accept header yang diterima adalah:

  • application/json
  • application/xml

3. Membuat service yang bisa mem-validasi Content-Type header request. Content-Type header yang diterima adalah:

  • application/json

4. Accept Header dikirim ketika melakukan fungsi GET (Read), POST (Create), PUT (Update), DELETE (Delete)
5. Content-Type Header dikirim ketika melakukan fungsi POST (Create), PUT (Update)


Fungsi Read All

Untuk membuat fungsi read all, mari kita ikuti langkah-langkah dibawah ini:

1. Fungsi Read ini akan melakukan satu validasi, yakni:

  • melakukan validasi Accept Header: hanya menerima application/json atau application/xml
  • Accept Header ini akan menentukan response format yang di kembalikan


2. Buka file app/Http/Controllers/PostsController.php dan update function store menjadi seperti ini:



3. Sekarang kita tambahkan Request Header. Click tab Headers (disamping tab Body yang lagi aktif). Tambahkan Accept Header dengan value application/json. Ketika kita click Send, maka tampilannya akan seperti dibawah ini.


4. Sekarang kita coba ubah value Accept Header menjadi application/xml, maka respon nya akan tetap sama yaitu dalam bentuk JSON. Ini terjadi karena kita belum mengatur response berdasarkan Accept Header.



Set Response Format

Di bagian ini kita akan melakukan setting response format berdasarkan pada Accept Header. Untuk melakukanya, mari kita ikuti langkah-langkah dibawah ini:

1. Untuk implementasinya kita akan menggunakan library PHP yaitu SimpleXMLElement.
2. Buka file app/Http/Controllers/PostsController.php dan update function store menjadi seperti ini:


3. Buka aplikasi postman, kalau Accept Header nya dalah application/json, maka tampilannya seperti ini:


4. Buka aplikasi postman, kalau Accept Header nya dalah application/xml, maka tampilannya seperti ini:



Fungsi Create

Untuk membuat fungsi create, mari kita ikuti langkah-langkah berikut ini:
1. Fungsi Create ini akan melakukan dua validasi, yakni:

  • melakukan validasi Accept Header: hanya menerima application/json atau application/xml
  • Melakukan validasi Content-Type Header: hanya menerima application/json.

2. Buka file app/Http/Controllers/PostsController.php dan update function store menjadi seperti ini:


3. Buka aplikasi Postman untuk melakukan pengetesan. Dibawah ini adalah tampilan Postman ketika melakukan request tanpa mengirimkan Accept Request Header. Responnya adalah ‘Not Acceptable!’. Ini terjadi karena kita belum mengirimkan Accept Header.


4. Sekarang kita tambahkan Request Header. Click tab Headers (disamping tab Body yang lagi aktif). Tambahkan Accept Header dengan value application/json. Ketika kita click Send, maka tampilannya akan seperti dibawah ini, response ny adalah ‘Unsupported Media Type’. Ini terjadi karena kita belum mengirimkan Content-Type Header.

5. Sekarang kita tambahkan Content-Type Header. Tambahkan Content-Type Header dengan value application/json.

6. Kemudian kita akan mengatur parameter Post dalam bentuk JSON. Klik tab Body -> Pilih Raw -> Pada tanda panah ke bawah di paling kanan pilih JSON. Kemudian isi paramter JSON nya, Lihat Gambar.


7. Klik tombol Send, maka tamplinya akan seperti ini.


Selesai,
Terimakasih Semoga Bermanfaat & Berfaedah :D .


0 Response to "Interoperability (Web Service) - PHP Lumen Content Negotiation"

Post a Comment

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel