Input Raw JSON Response to Lumen in Postman

Chalid Ade Rahman
3 min readOct 3, 2019

--

Dalam pembuatan Restful API, Saya dihadapkan oleh beberapa hal menarik. Hari ini saya diberi tugas untuk mengambil response data dari raw JSON lalu di dikirim dengan method pos dan ditampilkan dalam output yang nantinya akan passing ke fungsi lain. Bingung ? Kita mulai perlahan — lahan.

Intinya, salah satu fitur dalam Postman adalah kita dapat input data pada body dengan beberapa metode :

  • form-data
  • x-www-form-urlencode
  • raw
  • binary
  • GrapQL

Nantinya kita akan isi data dengan metode raw dan kita isi sebuah JSON kurang lebih seperti berikut :

Apabila biasanya kita menggunakan form-data atau x-www-form-urlencode pada artikel ini akan dijelaskan cara menginputkan data JSON melalui metode raw kemudian ditampilkan dalam output. Karna kita buat versi yang sederhana saja, maka kita tidak membutuhkan database ya disini. Pastikan requirement dasar dibawah sudah dipenuhi ya.

Requirement Dasar :

  1. Install Composer
  2. Install Lumen

Kemudian hal — hal yang akan kita lakukan diantaranya adalah sebagai berikut :

  1. Konfigurasi Router
  2. Konfigurasi Controller
  3. Testing dan Debugging

#1 Konfigurasi Router

Kita buat saja sebuah konfigurasi router sederhana yang ketika url itu diakses, dia akan melemparkan data ke dalam sebuah fungsi pada controller. Seperti berikut :

Caranya, buka dan edit file routers/web.php. Kemudian tambahkan script seperti diatas.

Keterangan :

  • $router artinya adalah fungsi dasar untuk proses routing pada lumen.
  • post adalah metode yang digunakan dalam proses routing.
  • /json adalah url yang akan kita gunakan. Anda bisa mengganti url sesuai dengan keinginan Anda. jika saya atur seperti diatas, artinya API ini akan diakses dengan http:url/json
  • TongkangController@json adalah controller yang akan kita gunakan untuk menangkap data dari input kemudian kita eksekusi input tersebut dalam function json

Kita sudah berhasil membuat sebuah route baru, kemudian saatnya kita buat controllernya.

#2 Konfigurasi Controller

Cara membuat controller mudah saja, buka folder app/Http/Controllers kemudian create new file dan beri nama sesuai controller yang anda daftarkan dalam route (pada case ini nama controller saya TongkangController.php).

Isikan konfigurasi seperti berikut :

Script paling penting dalam pengambilan data dari input JSON adalah skript berikut :

public function json(Request $request) {                            
$input = $this->request->all();
return response()->json($input); }

Variabel $input digunakan untuk menyimpan seluruh data yang diinputkan. kemudian script return digunakan untuk menampilkan data kedalam output.

Kita juga bisa menampilkan data secara cutom, misal saya ingin menampilkan hanya nomor container saja, berarti kita cukup menambahkan satu baris seperti berikut :

public function json(Request $request) {                            
$input = $this->request->all();
$container = $input['nocontainer'];
return response()->json($container); }

#3 Testing dan Debugging

Kemudian lakukan percobaan dengan membuka postman dan akses link seperti berikut :

http://localhost:8080/json

Jangan lupa juga mengisikan JSON format ke dalam input body dengan method raw. jika muncul tampilan seperti berikut, maka anda sudah berhasil mengambil data dari input JSON.

Jika tampilan output sudah seperti diatas, Artinya kita sudah berhasil. Tampilan berikut adalah ketika mencoba mengambil nomor container saja.

Mungkin hanya sampai disitu, jika ada pertanyaan feel free untuk commen dibawah ini. Saya juga lampirkan kesalahan — kesalahan yang terjadi selama saya melakukan percobaan ini.

Error Reporting

#1 Undefined property: App\Http\Controllers\TongkangController::$request

  • Kesalahan ini bisa terjadi dikarenakan adanya konfigurasi yang kurang. Yaitu dengan manambahkan beberapa script pada function _construct{}
  • Edit function tersebut dengan pengaturan seperti berikut :
public function __construct(\Illuminate\Http\Request $request)
{
$this->request = $request;
}
  • Jika sudah, save lalu coba lagi. Seharusnya masalah ini terselesaikan

#2 Class App\Http\Controllers\Request does not exist

  • Kesalahan ini terjadi di karenakan kita belum menambahkan class request. caranya mudah. kita cukup menambahkan satu script berikut dibaris atas.
use Illuminate\Http\Request;

Jika kalian menemukan masalah lain selama mencoba tutorial ini. silahkan lempar komentar dan mari kita selesaikan bersama.

--

--

Chalid Ade Rahman
Chalid Ade Rahman

Written by Chalid Ade Rahman

PHP Programmer | PT Electronic Data Interchange Indonesia | Question : chalidade@gmail.com

No responses yet