Tutorial RESTful API menggunakan POSTMAN pada Laravel

Pendahuluan

API (Application Programming Interface) merupakan sekumpulan aturan dan protokol yang memungkinkan
aplikasi berbeda platform untuk berkomunikasi dan saling terintegrasi.

Kegunaan API

  • Integrasi dengan layanan pihak ketiga
  • Memisahkan frontend dan backend
  • Mendukung multiple platform (web, mobile, desktop)
  • Memungkinkan microservices architecture

Ilustrasi penggunaan API

Komponen Utama API (Request dan Response) :

  1. Request (Permintaan)
  • URL/Endpoint
  • HTTP Method
  • Headers
  • Body/Payload
  1. Response (Respons)
  • Status Code
  • Headers
  • Body/Data

Ilustrasi komponen utama API

Jenis-Jenis API :

  • Web API : Menggunakan protokol HTTP/HTTPS
  • REST API: Mengikuti arsitektur REST
  • GraphQL API: Query language untuk API
  • SOAP API: Protocol berbasis XML
  • Library API: Interface untuk library atau framework
  • Operating System API: Interface dengan sistem operasi
  • Database API: Interface untuk mengakses database

RESTful API

REST (Representational State Transfer) adalah arsitektur untuk merancang web services. REST bukan protokol
atau standar, melainkan seperangkat prinsip desain.

Prinsip REST (Representational State Transfer)

  1. Client-Server Architecture
    Client dan server terpisah dan dapat berkembang secara independen.
  2. Stateless
    Setiap request harus berisi semua informasi yang diperlukan server untuk memproses request tersebut.
  3. Cacheable
    Response harus dapat di-cache untuk meningkatkan performa.
  4. Uniform Interface
    Interface yang konsisten antara client dan server.
  5. Layered System
    Arsitektur berlapis yang memungkinkan scalability.
  6. Code on Demand (Opsional)
    Server dapat mengirim kode executable ke client

Langkah Pengerjaan

Berikut adalah langkah-langkah untuk menerpakan RESTful API pada project Laravel menggunakan POSTMAN

A. Set up project, Database, dan migrasi

  1. untuk langkah pertama yang harus dikerjakan adalah membuat project laravel baru, atau bisa menggunakan project laravel yang sudah ada. pada kesempatan kali ini saya akan membuat project baru, silahkan buka cmder lalu ketikkan kode ini
composer create-project laravel/laravel api-project 

apabila sudah dijalankan pastikan tampilan cmder menjadi seperti ini dan tunggu prosesnya selesai

apabila telah selesai, silahkan buka proyeknya di code editor yang akan digunakan

2. Buat migrasi databasenya dengan menggunakan kode berikut di terminal:

php artisan make:migration create_products_table

apabila sudah dibuat, maka buatlah kode di function up nya menjadi seperti ini

lalu jalankan lah migrasi terrsebut dengan cara mengetikkan kode ini pada terminal

php artisan migrate

B. Membuat model

  1. Ketikkan pada terminal kode berikut ini
php artisan make:model Product

apabila sudah dijalankan, maka isikan lah kodenya menjadi seperti ini

C. API Routes

  1. Untuk langkah pertama, yang harus dilakukan karena ini adalah membuat API pertama kali, jadi diperlukan instalasi untuk API itu sendiri, langkah yang harus dikerjakan adalah mengetikkan kode ini pada terminal code editor
php artisan install:api

lalu apabila telah selesai, maka carilah pada file routes/api.php dan isikan kode berikut ini

C. API Controller

  1. Langkah selanjutnya adalah membuat controller bernama ProductController, buka terminal lalu jalankanlah kode berikut ini
php artisan make:controller ProductController --api

lalu carilah pada folder controller dengan nama file nya adalah dan buatlah kodenya menjadi seperti ini

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class ProductController extends Controller 
{ 
    public function index() 
    { 
        $products = Product::all(); 
        return response()->json([ 
            'status' => 'success', 
            'data' => $products 
        ]); 
    } 
     
    public function store(Request $request) 
    { 
        $validated = $request->validate([ 
            'name' => 'required|string|max:255', 
            'description' => 'required|string', 
            'price' => 'required|numeric|min:0', 
            'stock' => 'required|integer|min:0' 
        ]); 
         
        $product = Product::create($validated); 
         
        return response()->json([ 
            'status' => 'success', 
            'message' => 'Product created successfully', 
            'data' => $product 
        ], 201); 
    } 
     
    public function show(Product $product) 
    { 
        return response()->json([ 
            'status' => 'success', 
            'data' => $product 
        ]); 
    } 
     
    public function update(Request $request, Product $product) 
    { 
        $validated = $request->validate([ 
            'name' => 'sometimes|string|max:255', 
            'description' => 'sometimes|string', 
            'price' => 'sometimes|numeric|min:0', 
            'stock' => 'sometimes|integer|min:0' 
        ]); 
         
        $product->update($validated); 
         
        return response()->json([ 
            'status' => 'success', 
            'message' => 'Product updated successfully', 
            'data' => $product 
        ]); 
    } 
     
    public function destroy(Product $product) 
    { 
        $product->delete(); 
         
        return response()->json([ 
            'status' => 'success', 
            'message' => 'Product deleted successfully' 
        ]); 
    } 
}

D. API Resources (Data Transformation)

API Resources (Data Transformation) berguna untuk mentransformasi model data atau collection menjadi format JSON yang konsisten dan mudah dikustomisasi untuk API response. API Resource berfungsi sebagai layer transformasi antara model Eloquent dan JSON response yang dikirim ke client sehingga dapat digunakan untuk Mengontrol format output JSON, Menyembunyikan field sensitive, Menambahkan field computed dan Membuat response yang konsisten.

  1. Membuat Resource

ketikkan lah kode berikut ini pada terminal kode editor yang digunakan

php artisan make:resource ProductResource

lalu carilah file yg telah dibuat tadi pada app/http/resources/ProductResource lalu buatlah kodenya menjadi seperti ini

2. untuk menggunakan resources yang telah dibuat tersebut, carilah file controller yang tadi telah dibuat dan ubah function index() dan show() di ProductController tersebut menjadi seperti ini :

E. Validasi dan Error Handling

  1. Form Request Validation

Masukkan lah kode berikut ini pada terminal kode editor

php artisan make:request StoreProductRequest

lalu cari file yang baru dibuat tersebut dan ubahlah kodenya menjadi seperti ini

selanjutnya adalah menambahkan kode program untuk menanggani Exception, silahkan buat folder baru dengan nama Exception dan buat file Handler didalamnya, untuk lebih jelas adalah sebagai berikut app/Exceptions/Handler.php. silahkan masukkan kode program berikut ini :

F. Mengakses API Products dengan Postman

  1. Untuk pertama tama silahkan download terlebih dahulu postman pada link berikut ini

apabila sudah didownload maka silahkan atur dan set up sampai tampilan postman tersebut menjadi seperti ini

2. silahkan buka project laravel yang sudah dibuat tadi lalu masukkan kode ini pada terminalnya

php artisan serve

hal ini dilakukan agar bisa mengakses API yang telah kita buat sebelumnya

3. Setelah itu masuk ke aplikasi postman tadi, lalu untuk mengambil semua product nya gunakan url dan method berikut ini

URL = http://127.0.0.1:8000/api/products

Method = GET

silahkan masukkan pada postman dan apabila sukses maka akan menghasilkan tampilan berikut ini

Mengapa URL yang diperlukan adalah api/products, bukan /products? Karena, route kita berada di api.php sehingga Laravel akan otomatin menggunakan prefix berdasarkan routes yang dibuat. Namun, jika kita masukkan API Routes tadi kedalam file web.php, maka prefix yang digunakan adalah 127.0.0.1:8000/products.

4. Kemudian, kita akan mencoba untuk menambahkan product, caranya dengan menggunakan URL berikut di Postman :

URL: http://127.0.0.1:8000/api/products

Method: POST

lalu pada body di method post tersebut, pilih raw dan masukkan kode berikut ini

{ 
"name": "Smartphone Android", 
"description": "Smartphone dengan kamera 108MP dan RAM 8GB", 
"price": 4500000.00, 
"stock": 25 
}

maka tampilannya akan menjadi seperti ini apabila sudah di send dan dijalankan

Jika kita ingin menerapkan handling untuk exception memasukkan data yang salah, tambahkan kode berikut di Controller/ProductController :

untuk menguji nya, akan kita masukkan data yang salah, sebagai contohnya adalah sebagai berikut

{
    "name": "",
    "description": "Iphone 17",
    "price": 0,
    "stock": 30
}

akan menghasilkan pesan seperti ini

5. GET – Mengambil Product Berdasarkan ID

Caranya dengan menggunakan url berikut di Postman:

untuk URL nya adalah ini : URL: http://localhost:8000/api/products/{id} untuk kesempatan kali ini akan digunakan Contoh:

http://localhost:8000/api/products/1

dan untuk method nya adalah : GET

hasilnya akan terlihat seperti ini apabila dijalankan pada postmant

jika ingin menampilkan kode error yaitu kode 404 maka bisa dengan menambahkan ini pada function view di file ProductController.php

maka tampilannya akan terlihat seperti ini :

6. PUT – Update Product

selanjutnya adalah melakukan update data gunakan, URL berikut di Postman

URL: http://localhost:8000/api/products/{id}

contohnya URL: http://localhost:8000/api/products/{1}

Method: PUT

Masukkan contoh data berikut:

{
    "name": "Laptop Gaming Updated",
    "description": "Laptop gaming dengan spek tinggi dan SSD 1TB",
    "price": 16500000.00,
    "stock": 8
}

maka tampilannya akan terlihat seperti ini :

7. DELETE – Hapus Product

Selanjutnya apabila ingin melakukan delete data, maka bisa dengan menggunakan ini

URL: http://localhost:8000/api/products/{id}

contohnya: http://localhost:8000/api/products/1

Method: DELETE

maka tampilannya akan menjadi seperti ini

Untuk lebih jelasnya, kode kode yang digunakan dapat dilihat pada link github berikut ini

https://github.com/unVeroz007/mgalida2008_PWEB

Leave a Comment

Your email address will not be published. Required fields are marked *