Tutorial Cara Membuat RESTful Api dengan Laravel
Assalamualaikum wr.wb
Kita telah membuat route yang digunakan untuk index, create, dan perintah delete. Nah selanjutnya kita akan menguji Route API tersebut.. Bagamana kita dapat mengujinya?. Admin disini menggunakan aplikasi Postman, langsung saja buka aplikasi Potman nya.
Pada kesempatan kali ini foromkoding akan menjelaskan tahapan tahapan membangun Restful Api dengan Menggunakan Framework Laravel.
Banyak sekali pengertian mengenai apa itu API, Rest API dan Restful API. Untuk sahabat forumkoding yang belum memahami ketiga pengertian diatas maka admin akan memjelaskannya terlebih dahulu. Silahkan kalian simak dengan teliti dari perbedaannya diatas:
Kunjungi juga Membuat CRUD Rest API dengan PHP dan MySQL
Apa itu API?
API mempunyai singkatan yaitu (Application Programming Interface). Yang merupakan suatu penghubung serta memungkinkan suatu aplikasi dari berbagai flatform untuk dapat berinteraksi dengan aplikasi lainnya, yang tujuan utamanya adalah berbagi data antara aplikasi tersebut.
API juga dapat dikatakan sebagai prosedur serta fungsi fungsi yang dibuat untuk tujuan tertentu, misalkan untuk dapat mengendalikan sistem operasi, untuk dapat mendukung berbagai bahasa pemrograman, serta dipasang sebagai web service yang bertujuan untuk melayani suatu layanan tertentu semisal pembookingan tiket kereta ataupun hotel.
Apa itu REST?
REST merupakan singkatan dari (Representation State Transfer) yang merupakan arsitektur sebuah software. Dari API yang dibuat sebagai suatu layanan web service dapat mendukung permintaan atau permohonan request post maupun get dari penggunanya, serta dapat mengembalikan nilai return berupa data JSON.Apa itu RESTful API
RESTful API merupakan gabungan antara API dan REST yang merupakan salah satu permodelan pengimplementasian dari web service. RESTful API juga merupakan pengimplementasi dari API. Jadi RESTful itu merupakan sebuah protokol/aturan untuk dapat melakukan REST. jadi RESTful itu pastinya dapat dikatakan REST namun REST belum tentu bisa dikatakan RESTful.
Setelah kalian paham mengenai penjelasan diatas, maka kali ini kita akan berkenalan langsung dengan Framework Laravel untuk membuat RESTful API. Untuk pengimplementasiannya kita kana membuat aplikasi yang sangat sederhana yaitu CRUD serta melakukan testing pada API yang sudah kita buat dari aplikasi Postman.
Langkah - Langkah
Karena kita akan membuat RESTful API dengan menggunakan Framework Laravel, yang merupakan salah satu framework PHP yang sangat terkenal ini. Dibawah ini merupakan persiapan apa saja yang harus kita persiapkan, silahkan kalian simak point - point pentingnya
- Text Editor, kalian dapat menggunakan aplikasi (Visual Studio Code, Atom, Sublime, dll).
- Pastikan kalian sudah menginstal Composer dan sudah memiliki Project Laravel yang masing kosong atau baru.
- Menginstall aplikasi Postman. Untuk mengecek RESTful APInya nanti.
- Web Server, yaitu XAMPP atau sejenisnya.
Nah langsung saja kita menuju mebahasannya, untuk langkah pertama kita buka terlebih dahulu project Laravel kita pada Text Editor kalian masing - masing, setelah project laravelnya dimasukan kedalam Text Editor.
Langkah selanjutnya kita akan membuat database baru, jangan lupa teman - teman terlebih dahulu nyalakan database servernya pada XAMPP yang didalamnya terdapat Mysql server.
Bagi kalian yang menggunakan windows, kalian tinggal buka saja aplikasi XAMPP Control Panelnya maka akan muncul tampilan GUInya lalu silahkan klik start pada Apache dan Mysqlnya.
Setelah Apache dan Mysqlnya di start kemudian ketikan localhost/phpmyadmin, lalu akan muncul dashboard seperti dibawah ini:
Lalu buatlah database baru dengan nama sesuai keinginan teman - teman, disini saya membuat nama databasenya dengan nama crud_api. Lalu silahkan atur pada file .env pada project laravel kalian. lalu ubah menjadi seperti dibawah ini:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=crud_api
DB_USERNAME=root
DB_PASSWORD=
Nah konfigunasai antara project kita dengan database Mysql sudah dibuat selanjutnya kita akan menuju pada tutorial utamanya:
Untuk tahapan selanjutnya kita akan membuat field bada table siswa dengan mengubah script pada file mgration Siswa seperti dibawah ini:
- Pertama kita akan membuat suatu model dengan nama Siswa
- Kedua kita membuat controller berupa controller resource.
Perintah untuk membuat model serta controllernya secara langsung, dengan cara mengetikan perintah dibawah ini pada Command Prompt.
php artisan make:model Siswa -c -mNah setelah kalian selesai maka akan terdapat file baru yaitu controller, model, serta migrationnya
Untuk tahapan selanjutnya kita akan membuat field bada table siswa dengan mengubah script pada file mgration Siswa seperti dibawah ini:
public function up()
{
Schema::create('siswas', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('nama');
$table->string('alamat');
$table->timestamps();
});
}
Kita akan membuat field dan mempunyai type datanya masing - masing,
- Untuk id bertype data (integer) -> primary key
- Untuk nama bertype data (string)
- Untuk alamat bertype data (string)
Sebelum kita melakukan perintah migrate, silahkan kalian buka file AppServiceProvider.php pada direktori app/providers/AppServiceProvider.php kita ubah pada function boot seperti dibawah ini:
public function boot()
{
Schema::defaultStringLength('191');
}
Artinya adalah kita akan memberikan nilai defaultnya dengan panjang 191 karakter dengan type data string. Setelah itu kita akan mengerikan perintah migrate pada command prompt, silahkan perhatikan perintah dibawah ini:
Pada tahap selanjutnya kita akan mengisi file Controller, pada Controller ini akan difungsikan untuk menyimpan perintah - perintah yang berbungungan dengan Model seperti CRUD, Silahkan kalian ikuti kode program dibawah ini pada file SiswaController.php :
php artisan migrateNah setelah selesai silahkan kalian lihat pada database mysqlnya maka akan terlihat table baru dengan nama Siswa serta diikuti oleh field field yang telah kita buat tadi.
Pada tahap selanjutnya kita akan mengisi file Controller, pada Controller ini akan difungsikan untuk menyimpan perintah - perintah yang berbungungan dengan Model seperti CRUD, Silahkan kalian ikuti kode program dibawah ini pada file SiswaController.php :
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Siswa;
Kita harus menambahkan use App\Siswa kedalam Controller yang akan kita gunakan karena kita akan menggunakan model Siswa, lalu kita akan menambahkan kode pada index seperti dibawah ini.
public function index(){
return Siswa::all();
}
Tahapan kedua kita akan membuat suatu fungsi untuk memasukan data kedalam database, berikut scriptnya:
//index menyimpan data
public fucntion create(Request $request){
$siswa = new Siswa;
$siswa->nama = $request->nama;
$siswa->alamat = $request->alamat;
$siswa->save();
return "Data berhasil ditambahkan";
}
Tahapan ketiga kita akan membuat fungsi update untuk dapat mengubah data pada database, untuk secriptnya dibawah ini:
//index update semua
public function update(Request $request, $id){
$nama = $request->nama;
$alamat = $request->alamat;
$siswa = Siswa::find($id);
$siswa->nama = $nama;
$siswa->alamat = $alamat;
$siswa->save();
return "Data berhasil diubah";
}
Pada tahap terakhir kita akan membuat fungsi untuk dapat menghapus data pada database, untuk scriptnya perhatikan dibawah ini:
//delete
public function delete($id){
$siswa = Siswa::find($id);
$siswa->delete();
return "Data berhasil dihapus";
}
Setelah teman - teman selesai mengikuti tahapan diatas, maka langkah selanjutnya adalah membua Route APInya, perbedaan yang sangat mendasar saat kita akan membuat route API adalah ketika biasanya kita menyimpan Route pada file web.php dan disini kita akan meletakan routenya pada file api.php.
Silahkan kalian buka file Route/api.php dan tambahkan beberapa script didalamnya. Untuk scritpnya sendiri akan difungsikan untuk dapat mengakses fungsi fungsi yang telah kita buat pada Controller.
silahkan kalian ikuti penambahan scriptnya seperti dibawah ini:
Silahkan kalian buka file Route/api.php dan tambahkan beberapa script didalamnya. Untuk scritpnya sendiri akan difungsikan untuk dapat mengakses fungsi fungsi yang telah kita buat pada Controller.
silahkan kalian ikuti penambahan scriptnya seperti dibawah ini:
Route::middleware('auth:api')->get('/user', function (Request $request) {
return $request->user();
});
Route::get('siswa','SiswaController@index');
Route::post('siswa','SiswaController@create');
Route::put('/siswa/{id}','SiswaController@update');
Route::delete('/siswa/{id}','SiswaController@delete');
Kita telah membuat route yang digunakan untuk index, create, dan perintah delete. Nah selanjutnya kita akan menguji Route API tersebut.. Bagamana kita dapat mengujinya?. Admin disini menggunakan aplikasi Postman, langsung saja buka aplikasi Potman nya.
Tahap Pengujian
Pengujian Index
Pada saat tampilan pengujian index pertama kali maka tidak ada data yang dapat ditampilkan, karena memang pada dasarnya kita belum menginputkan data. untuk mengakses pada Postmannya silahkan perhatikan gambar dibawah ini.
Pada tampilan diatas kita dapat mengatur methodnya sesuai dengan perintah apa yang ingin kita buat atau dapat disesuaikan dengan apa yang ingi kita uji. misalnya kita akan menguji index maka lita harus pilih method GET. Disebelahnya merupakan alamat untuk mengakses API yang kita telah buat pada file api.php, karena kita menggunakan api siswa maka kita menuliskan alamatnya dengan http://127.0.0.1:8000/api/siswa.
Gambar diatas merupakan tampilan ketika kita mengakses index, hasilnya data yang dibawahnya akan tampil berupa data JSON. Pada index tersebut terlihat kosong karena kita belum melakukan penginputan
Pengujian Create
Untuk pengujian create maka kita akan mengubah methodnya dengan method POST, lalu kita pilih pada bagian body, selanjutnya silahkan pilih x-www-form-urlencoded.
Dan tambahkan key sesuai dengan field yang terdapat dalam tabel database yang kita buat sebelumnya, yaitu nama dan alamat. Dan langsung isikan datanya seperti gambar dibawah ini:
Lalu teman - teman klik tombol send, maka dibawahnya akan menampilkan pesan "Data berhasil ditambahkan". (Pesan itu bisa tampil karena kita telah membuatnya pada controller) dan data yang kita inputkan telah berhasil masuk ke databasenya.
Untuk melihat hasilkan, kita ubah lagi methodnya dengan index, atau dapat dikatakan sesuai dengan cara menampilkan index, untuk melihat hasilnya berhasil atau tidak silahkan kalian coba ya, jika berhasil maka akan menampilkan data seperti dibawah ini:
Data dengan id 2 serta dengan nama Muhammad Rizal telah berhasil ditambahkan, itu artinya pengujian kita terhadap CREATE berhasil.
Pengujian Update
Hampir sama dengan metode sebelumnya, namun terdapat sedikit perbedaan pada URL yang kita akan gunakan, yaitu pada url kita .. kita sertakan id dari data yang akan kita ubah maka data dari id tersebut akan berubah. Untuk methodnya sendiri menggunakan PUT
Kita langsung akan mencobanya, silahkan perhatikan gambar berikut:
Kita dapat melihat ada pesan "Data berhasil diubah", maka itu artinya kita telah berhasil mengubah data nya, Untuk melihat hasilnya silahkan teman teman akses kembali seperti untuk menampilkan index. gambar berikut merupakan hasil dari update:
Nama id 2 akan berubah menjadi Muhammad Rizal Supriadi serta alamatnya pun berubah, berarti dapat dikatakan proses update telah berhasil.
Pengujian Delete
Untuk langkah paling akhir kita akan melakukan pengujian dengan menghapus data yang terdapat pada database tadi, caranya dengan mengubah methodnya menjadi method DELETE serta menambahkan urlnya dengan id yang ingin kita delete. Admin mencontohkan mendelete id nomor 2
dengan mengakses url http://127.0.0.1:8000/api/siswa/2. Untuk hasilnya maka akan menampilkan data kosogng seperti semua sebelum kita melakukan penambahan Data.
Nah gimana nih tutorialnya sudah jelas? mudahkan untuk bermain - main denga API dari Framework Laravel? Jika teman - teman menemukan kendala atau error silahkan saja tulis dikomentar.. insyaalloh admin akan menjawabnya.
Terimakasih telah membaca artikel mengenai Tutorial Cara Membuat RESTful Api dengan Laravel
Semoga bermanfaat -- Salam Success
By: Muhammad Rizal Supriadi