Hallo sobat Newbie, pada kesempatan kali ini kita akan membahas Lumen Respon API, tutorial ini melanjutkan dari tutorial Lumen Framework #2. Kita akan membuat service menggunakan PHP Lumen yang bisa melakukan Content Negotiation.
Pertama download terlebih dahulu library xml menggunakan composer
composer require ext-simplexml
Lalu kita modifikasi method store, jadi 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.

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, maka response akan seperti berikut.


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.

Maka response akan seperti berikut.

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

Maka response yang muncul dalam bentuk xml seperti berikut.



Selanjutnya kita implementasikan pada method show, update, dan delete.

Method Show

Lakukan test tanpa parameter Accept Header.

Masukkan parameter value application/json.

Masukkan parameter value application/xml

Method Update


Lakukan test tanpa parameter Accept Header.

Masukkan parameter value application/json.

Masukkan parameter value application/xml.


Method Destroy

Lakukan test tanpa parameter Accept Header.

Masukkan parameter value application/json.


Masukkan parameter value application/xml.

Selanjutnya kita akan mengimplementasikan Content-Type Header pada function update, jadi selain perlu parameter Accept, kita juga akan menerapkan parameter Content-Type, pertama kita modifikasi method update 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 post 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.

Mengapa? karena kita telah memberikan kondisi pada method update untuk menambahkan parameter kedua yaitu Content-Type, 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.