Coding

Buat REST API dengan Laravel 10 Cuma 15 Menit! Dijamin Langsung Bisa!

4 min read
Admin Admin

Daftar Isi

REST API telah menjadi standar dalam pengembangan aplikasi modern. Laravel 10, sebagai framework PHP terpopuler, menyediakan tools yang powerful untuk membuat REST API dengan mudah dan cepat. Mari kita pelajari cara membuatnya step by step!

Tutorial REST API Laravel

Prasyarat

  • PHP 8.1 atau lebih tinggi
  • Composer terinstall
  • MySQL atau database lainnya
  • Text editor (VS Code recommended)
  • Postman untuk testing API

1. Instalasi Laravel 10

Pertama, buat project Laravel baru dengan menjalankan perintah berikut di terminal:

composer create-project laravel/laravel rest-api-demo

Setelah selesai, masuk ke direktori project:

cd rest-api-demo

2. Konfigurasi Database

Buka file .env dan sesuaikan konfigurasi database:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=rest_api_demo
DB_USERNAME=root
DB_PASSWORD=

3. Membuat Model dan Migration

Kita akan membuat API untuk mengelola data produk. Jalankan perintah artisan berikut:

php artisan make:model Product -m

Edit file migration yang baru dibuat di database/migrations:

public function up()
{
  Schema::create('products', function (Blueprint $table) {
      $table->id();
      $table->string('name');
      $table->text('description');
      $table->decimal('price', 10, 2);
      $table->integer('stock');
      $table->timestamps();
  });
}

Jalankan migration:

php artisan migrate

4. Membuat Controller

Buat API Controller dengan perintah:

php artisan make:controller API/ProductController --api

Edit ProductController.php:

Tertarik baca Hasilkan Uang dengan HTML dan CSS! 5 Cara Mudah Menghasilkan Penghasilan Tambahan Sambil Belajar Coding di sini.
namespace App\Http\Controllers\API;

use App\Http\Controllers\Controller;
use App\Models\Product;
use Illuminate\Http\Request;

class ProductController extends Controller
{
  public function index()
  {
      $products = Product::all();
      return response()->json([
          'success' => true,
          'data' => $products
      ]);
  }

  public function store(Request $request)
  {
      $validated = $request->validate([
          'name' => 'required|max:255',
          'description' => 'required',
          'price' => 'required|numeric',
          'stock' => 'required|integer'
      ]);

      $product = Product::create($validated);

      return response()->json([
          'success' => true,
          'data' => $product
      ], 201);
  }

  public function show($id)
  {
      $product = Product::findOrFail($id);
      return response()->json([
          'success' => true,
          'data' => $product
      ]);
  }

  public function update(Request $request, $id)
  {
      $product = Product::findOrFail($id);
      
      $validated = $request->validate([
          'name' => 'required|max:255',
          'description' => 'required',
          'price' => 'required|numeric',
          'stock' => 'required|integer'
      ]);

      $product->update($validated);

      return response()->json([
          'success' => true,
          'data' => $product
      ]);
  }

  public function destroy($id)
  {
      $product = Product::findOrFail($id);
      $product->delete();

      return response()->json([
          'success' => true,
          'message' => 'Product deleted successfully'
      ]);
  }
}

5. Menambahkan Routes

Edit routes/api.php untuk menambahkan endpoint API:

use App\Http\Controllers\API\ProductController;

Route::apiResource('products', ProductController::class);
Testing API dengan Postman

6. Testing API

Jalankan server Laravel:

php artisan serve

Endpoint API yang tersedia:

  • GET /api/products - Mendapatkan semua produk
  • POST /api/products - Membuat produk baru
  • GET /api/products/{id} - Mendapatkan detail produk
  • PUT /api/products/{id} - Update produk
  • DELETE /api/products/{id} - Hapus produk

Tips Testing dengan Postman

  • Gunakan header Accept: application/json
  • Untuk POST/PUT, gunakan Content-Type: application/json
  • Body request menggunakan format JSON

7. Menambahkan Autentikasi (Opsional)

Untuk menambahkan autentikasi, install Laravel Sanctum:

Artikel terkait: Integrasi SSO di Multiple Aplikasi Dalam 15 Menit! Begini Cara Mudahnya
composer require laravel/sanctum

Publish konfigurasi Sanctum:

php artisan vendor:publish --provider="Laravel\Sanctum\SanctumServiceProvider"

8. Error Handling

Laravel menyediakan error handling bawaan, tapi kita bisa customize dengan membuat ExceptionHandler:

namespace App\Exceptions;

use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;
use Throwable;

class Handler extends ExceptionHandler
{
  public function render($request, Throwable $exception)
  {
      if ($request->expectsJson()) {
          return response()->json([
              'success' => false,
              'message' => $exception->getMessage()
          ], 500);
      }

      return parent::render($request, $exception);
  }
}

9. API Documentation

Untuk dokumentasi API, bisa menggunakan tools seperti:

Tertarik baca Belajar React Native dari Nol! Cara Membuat Aplikasi Mobile yang Bisa Dipakai di Android & iOS di sini.
  • Swagger/OpenAPI
  • Scribe
  • API Blueprint

Best Practices

  • Gunakan versioning untuk API (/api/v1/products)
  • Implementasikan rate limiting
  • Selalu validasi input
  • Gunakan proper HTTP status codes
  • Implementasikan caching jika diperlukan

Kesimpulan

Membuat REST API dengan Laravel 10 sangat mudah dan straightforward. Framework ini menyediakan semua tools yang dibutuhkan untuk membuat API yang robust dan scalable. Dengan mengikuti tutorial ini, Anda sudah memiliki dasar yang kuat untuk mengembangkan API lebih lanjut sesuai kebutuhan project.

Seperti halnya API yang perlu dimonitor performanya, domain website Anda juga perlu dimonitor masa aktifnya. Untuk informasi lengkap tentang monitoring domain expired, list domain expired, dan marketplace domain terpercaya, kunjungi Back.co.id.