Laravel Rest API adalah solusi populer untuk membangun backend yang cepat, efisien, dan mudah digunakan. Dalam artikel ini, kami akan memberikan tutorial tentang cara membuat Rest API menggunakan Laravel yang kami buat untuk programmer pemula yang baru mulai belajar Laravel.
Untuk mempermudah proses pertukaran data di Laravel, pengguaan Rest API menjadi solusi paling mudah dan cepat. Dalam hal ini, Rest API berfungsi sebagai sumber data yang dapat diakses oleh berbagai aplikasi client tanpa harus terhubung langsung ke database server.
Apa itu Rest API?
REST API adalah kepanjangan dari Representational State Transfer. Secara definisi, REST API adalah arsitektur pertukaran data menggunakan protokol HTTP untuk mengakses, mengambil, dan menggunakan data tersebut dari server API secara langsung.
Rest API memiliki beberapa metode transaksi data, seperti GET untuk mengambil informasi data, POST untuk menciptakan data baru, PUT untuk memperbarui data, dan DELETE untuk menghapus data.
Artikel lebih detail tentang penjelasan Rest API dan Restful API bisa Anda pelajari pada artikel berikut: Apa Itu REST API?
Tutorial Laravel REST API
Dalam tutorial laravel rest api ini, kami akan membuat halaman artikel sederhana yang terdiri dari judul, nama penulis, dan isi blog. Sebelum memulai, pastikan Anda sudah menyiapkan beberapa hal berikut:
- Install Composer
- Web server lokal seperti XAMPP atau Laragon
- PHP versi 7.4 atau versi yang lebih baru
Dalam tutorial ini, kami akan menggunakan XAMPP sebagai web servernya. Setelah semua permintaan sistem telah lengkap, Anda bisa ikuti panduan berikut untuk memulainya.
Step 1. Install Composer
Langkah pertama yang perlu Anda lakukan adalah mengunduh composer dan menginstalnya di komputer yang digunakan.
Panduannya bisa Anda pelajari melalui artikel berikut: Cara Install Composer
Step 2. Buat project Laravel
Kami akan beri nama blog-api. Silahkan masuk ke folder htdocs XAMPP dan jalankan perintah berikut melalui terminal:
# composer create-project --prefer-dist laravel/laravel blog-api
# cd blog-api
1. Setting Database
Setelah project Laravel berhasil dibuat, selanjutnya Anda dapat membuat database di XAMPP terlebih dahulu. Panduan membuat database di XAMPP bisa Anda pelajari pada artikel berikut: membuat database di xampp
Setelah itu, Anda bisa melakukan setting koneksi database pada file .env. Langkahnya, silahkan masuk ke folder root laravel yang Anda install, setelah itu edit file .env seperti berikut:
DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=nama_database
DB_USERNAME=username
DB_PASSWORD=password
2. Buat Model dan Migrate DB
Buat model laravel dan migrate database menggunakan perintah berikut:
# php artisan make:model Post -m
# php artisan migrate
Apabila proses migrate telah selesai, silahkan Anda edit file berikut untuk menambahkan Title, Author, Article:
database/migrations/xxxxx_create_posts_table.php
Tambahkan:
public function up()
{
Schema::create('posts', function (Blueprint $table) {
$table->id();
$table->string('title');
$table->string('author');
$table->text('article');
$table->timestamps();
});
}
3. Buat Controller untuk CRUD
Langkah selanjutnya, silahkan buat controller untuk proses CRUD dengan menjalankan perintah berikut:
# php artisan make:controller PostController
Jika proses pembuatan controller telah selesai, silahkan Anda cari dan edit file: app/Http/Controllers/PostController.php
Tambahkan:
namespace App\Http\Controllers;
use App\Models\Post;
use Illuminate\Http\Request;
class PostController extends Controller
{
// Get all posts
public function index()
{
return Post::all();
}
// Create a new post
public function store(Request $request)
{
$request->validate([
'title' => 'required|string|max:255',
'author' => 'required|string|max:255',
'article' => 'required',
]);
return Post::create($request->all());
}
// Get a single post by ID
public function show($id)
{
return Post::find($id);
}
// Update a post by ID
public function update(Request $request, $id)
{
$post = Post::find($id);
$request->validate([
'title' => 'string|max:255',
'author' => 'string|max:255',
'article' => 'nullable',
]);
$post->update($request->all());
return $post;
}
// Delete a post by ID
public function destroy($id)
{
return Post::destroy($id);
}
}
4. Edit api.php
Langkah selanjutnya, silahkan edit file api.php yang bisa Anda temukan di folder routes
. Silahkan tambahkan script berikut:
use App\Http\Controllers\PostController;
Route::get('/posts', [PostController::class, 'index']);
Route::post('/posts', [PostController::class, 'store']);
Route::get('/posts/{id}', [PostController::class, 'show']);
Route::put('/posts/{id}', [PostController::class, 'update']);
Route::delete('/posts/{id}', [PostController::class, 'destroy']);
5. Membuat Rest API di Laravel
Langkah terakhir dalam pembuatan Rest API Laravel ini, silahkan Anda edit file: app/Models/Post.php. Tambahkan script berikut:
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Post extends Model
{
// kolom-kolom yang boleh diisi secara massal
protected $fillable = ['title', 'author', 'article'];
}
Kembali ke terminal, silahkan lakukan clear cache dan jalankan laravel menggunakan perintah:
# php artisan optimize
# php artisan serve
Step 3. Pengujian Rest API Laravel
Pada bagian testing ini Anda bisa menggunakan Postman, salah satu alat pengujian API yang dapat diunduh melalui situs resminya secara gratis.
1. Tambah data artikel
Jalankan Postman dengan target/endpoint => http://localhost:8000/api/posts
Pastikan settingannya dibuat sama seperti screenshot dibawah, yaitu:
Method: POST
URL: endpoint (sesuai lokasi laravel)
Body: raw => JSON
Isi Body:
{
"title": "Judul disini",
"author": "Nama penulis",
"article": "Isi artikel"
}
Pada bagian isi body, silahkan sesuaikan judul dan lainnya, kemudian klik tombol Send untuk mengirimkan datanya ke dalam database.
Jika responnya adalah 201 Created, silahkan akses tautan websiteya di browser. Anda akan menemukan hasilnya seperti berikut:
Untuk memastikan datanya tersimpan di database, Anda bisa cek langsung ke phpMyAdmin. Jika koneksi databasenya berhasil terhubung dengan script .ENV milik laravel, maka akan tampil seperti dibawah ini:
2. Perbarui data artikel
Anda bisa set method Postman menjadi PUT. Selanjutnya edit isi dari body JSON kemudian klik Send.
Perbedaannya disini adalah Anda harus menambahkan {id} dari artikel yang sudah dibuat dan ID ini dapat dilihat dari hasil testing diawal pengujian.
Target/endpoint dari API post: http://localhost:8000/api/posts/{id} , misalnya ingin perbarui postingan dengan id 1, maka target/endpoint menjadi => http://localhost:8000/api/posts/1
isi body:
Method: POST
URL: endpoint (sesuai lokasi laravel)
Body: raw => JSON
Isi Body:
{
"title": "Belajar API Laravel dengan Mudah",
"author": "Fredric Lesomar dan teman-teman",
"article": "Siapa bilang membuat API Laravel itu rumit? semakin pesatnya informasi teknologi, membuat kita dapat dengan mudah belajar apa saja seperti, API di Laravel."
}
Jika sudah mengupdate deskripsi, silahkan klik Send maka hasilnya seperti gambar diatas dan setiap pembaruan dapat Anda cek melalui browser atau database.
3. Hapus data artikel
Hapus data artikel yang telah dibuat sebelumnya, silahkan Anda gunakan metode DELETE dengan target/endpoint => http://localhost:8000/api/posts/{id}
Bagaimana, mudah bukan membuat Laravel REST API? Selain data artikel seperti di atas, Anda juga dapat membuat beberapa hal seperti update informasi dan lain-lain tanpa harus login ke websitenya. Namun, agar proses pertukaran data menjadi lebih aman, sebaiknya tambahkan authentication seperti Sanctum.
Demikian artikel kami tentang Laravel REST API untuk pemula dari Rumahweb Indonesia, semoga bermanfaat.