Membuat controller API di Laravel
Mengatur route untuk endpoint GET, POST, PUT, DELETE
Mengembalikan JSON response hanya berisi id, name, dan email
berikut ini adalah struktur file kondisi terakhir.. langkah-langkah nantinya adalah menambahkan controller dan route pada Laravel.
untuk membuat file controller, ketikan perintah: php artisan make:controller Api/UserController --api
dengan perintah ini akan membuat file UserController pada folder Api pada folder Http/Controller/Api. ketika kita membuka file tersebut terdapat file dengan template terdapat fungsi: index (), store(), dll.
Langkah berikutnya adalah merubah file api.php pada folder route, dan tambahakan isinya dengan pemanggilan controller yang telah dibuat sebelumnya dengan menambahkan code: route::apiResource('users',UserController::class)
dengan perintah apiResource akan otomatis menambahkan router
apiResource otomatis membuat semua route CRUD:
GET /api/users
POST /api/users
PUT /api/users/{id}
DELETE /api/users/{id}
langkah berikutnya adalah mengisi file UserController.php yang kita bikin sebelumnya.. tambahkan code berikut pada setiap fungsi yang ada.
public function index()
{
return User::select('id', 'name','email')->get();
}
public function store(Request $request)
{
$validated = $request->validate([
'name' => 'required|string|max:255',
'email' => 'required|unique:users|email',
'password' => 'required|string|min:4',
]);
$user =User::create([
'name' => $validated['name'],
'email' => $validated['email'],
'password' => Hash::make($validated['password']),
]);
return response()->json($user,201);
}
public function update(Request $request, string $id)
{
$user = User::FindorFail($id);
$validated = $request->validate([
'name' => 'required|string|max:255',
'email' => 'required|email|unique:users,email,'.$id,
]);
$user->update($validated);
return response()->json($user,201);
}
public function destroy(string $id)
{
$user = User::FindorFail($id);
$user->delete();
return response()->json(null, 204);
}
langkah berikutnya adalah melakukan pengujian pada postman.
langkah pertama adalah ketikan perintah ini di terminal phpstorm: php artisan serve
setelah itu buka postman (jika belum punya, silahkan download terlebih dahulu), dan masukkan url dengan alamat: http://127.0.0.1:8000/api/users
method rubah ke POST, (default POST).
masuk ke tab body, bagian pilih yang 'raw' seperti yang ada pada gambar dibawah.
jika sudah diisikan semuanya lanjut klik 'send'. jika tidak ada salah ketik maka akan muncul dibagian awal seperti yang dicontoh. ketika kita masuk database juga akan
Testing selanjutnya adalah GET. masuk ke postman, klik untuk tambah tab, rubah method menjadi GET dan isikan alamat url sama dengan tadi, pada bagian header tambahkan isian 'key' dengan 'Accept' dan 'value' pilih aaplication/json.
setelah klik 'send' seharusnya munculnya seperti ini. pada API kan mengembalikan nilai id, name, dan email.
testing untuk PUT.
rubah method menjadi PUT, isikan alamat dengan http://127.0.0.1:8000/api/users/3 (terdapat angka 3 dipaling belakang, ini menunjukkan parameter ID yang akan dirubah)
dan tambahkan ke bagian body-raw seperti yang ada dicontoh. jika semuanya tidak ada masalah maka hasilnya akan seperti dibawah
testing untuk DELETE
setelah DELETE, maka gunakan method GET untuk melihat isi data. maka akan terdapat 2 data sekarang