Pertemuan 1 – Pengantar API & HTTP
Pertemuan 1 – Pengantar API & HTTP

Pertemuan 1 – Pengantar API & HTTP

Capaian Pembelajaran

  • Mahasiswa mampu menjelaskan apa itu API dan bagaimana API bekerja melalui protokol HTTP.

  • Mahasiswa memahami konsep method HTTP, status code, dan header.

  • Mahasiswa bisa membedakan REST API dengan RPC API.

  • Mahasiswa mampu melakukan uji sederhana ke endpoint menggunakan cURL dan Postman.


1. Konsep Dasar API

  • API (Application Programming Interface): perantara komunikasi antar aplikasi/sistem.

  • Dalam konteks web → API biasanya berbasis HTTP dan menggunakan format data JSON.

  • API memungkinkan client (misalnya aplikasi mobile/web) berkomunikasi dengan server untuk tukar data.

Contoh:


 

Client (mobile/web) <──HTTP──> Server (API) <──DB──> Database


2. HTTP: Protokol di Balik API

a) HTTP Method

Metode utama yang dipakai dalam REST API:

Method Kegunaan Contoh
GET Mengambil data GET /users
POST Membuat data baru POST /users
PUT Mengupdate data (replace) PUT /users/1
PATCH Mengupdate sebagian data PATCH /users/1
DELETE Menghapus data DELETE /users/1

b) HTTP Status Code

Memberi tahu hasil eksekusi request.

Kode Kategori Arti
200 OK Success Request berhasil
201 Created Success Data berhasil dibuat
400 Bad Request Client Error Format request salah
401 Unauthorized Client Error Token/auth salah/kurang
403 Forbidden Client Error Tidak ada izin
404 Not Found Client Error Endpoint/data tidak ada
500 Internal Server Error Server Error Kesalahan server

c) HTTP Header

  • Request Header → metadata yang dikirim client

    • Content-Type: application/json

    • Authorization: Bearer <token>

  • Response Header → metadata dari server

    • Content-Type: application/json

    • X-RateLimit-Remaining: 58


3. REST vs RPC

  • REST (Representational State Transfer)

    • Resource-oriented → fokus pada data (resource).

    • URL merepresentasikan entitas.

    • Method HTTP punya arti standar.

    • Contoh:

      • GET /users → ambil semua user

      • POST /users → buat user baru

  • RPC (Remote Procedure Call)

    • Action-oriented → fokus pada fungsi/aksi.

    • URL = nama fungsi/prosedur.

    • Method sering hanya POST.

    • Contoh:

      • POST /getUsers

      • POST /createUser

???? Saat ini REST API lebih populer untuk web services karena standar & mudah dipahami.


4. Demo: Mengakses API

a) Dengan cURL (CLI)

Tes endpoint health check (misalnya sudah ada /api/v1/health):


 

# GET request curl -X GET http://localhost/api-php-native/public/api/v1/health # POST login (body JSON) curl -X POST http://localhost/api-php-native/public/api/v1/auth/login \ -H "Content-Type: application/json" \ -d '{"email":"admin@example.com","password":"admin123"}'


b) Dengan Postman (GUI)

  1. Buka Postman → New Request.

  2. Method: GET, URL:

    
     

    http://localhost/api-php-native/public/api/v1/health

    Klik Send → lihat response JSON.

  3. Method: POST, URL:

    
     

    http://localhost/api-php-native/public/api/v1/auth/login

    Body → raw JSON:

    
     

    {"email":"admin@example.com","password":"admin123"}

    Klik Send → dapatkan token.


5. Diskusi Kelas

  • Mengapa API butuh status code standar?

  • Apa bedanya REST dan RPC?

  • Apa kelemahan hanya menggunakan POST untuk semua operasi?

  • Kenapa perlu header Content-Type dan Authorization?