Recraftory

REST API

Memahami konsep REST API dalam pengembangan aplikasi

Apa itu API

  • Application Programming Interface: antarmuka untuk komunikasi antar aplikasi
  • Memungkinkan aplikasi frontend berkomunikasi dengan backend
  • Menggunakan protokol HTTP sebagai medium komunikasi

Apa itu REST

  • Representational State Transfer: gaya arsitektur untuk merancang API
  • Menggunakan resource sebagai pusat komunikasi
  • Setiap resource diidentifikasi dengan URL unik

Prinsip REST

Resource-Based

  • Setiap data dianggap sebagai resource
  • Resource diidentifikasi dengan URL, contoh: /users, /products/123

Statelessness

  • Setiap request berdiri sendiri tanpa menyimpan state di server
  • Semua informasi yang diperlukan dikirim dalam satu request
  • Server tidak perlu mengingat request sebelumnya

Representation

  • Resource dapat direpresentasikan dalam berbagai format
  • Format umum: JSON, XML, HTML
  • JSON paling populer dalam pengembangan modern

Standard Methods

  • Menggunakan method HTTP sesuai tujuannya
  • GET untuk membaca, POST untuk membuat, PUT untuk memperbarui, DELETE untuk menghapus

Contoh REST API Endpoint

MethodEndpointFungsi
GET/usersMengambil daftar user
GET/users/1Mengambil detail user dengan ID 1
POST/usersMembuat user baru
PUT/users/1Memperbarui data user ID 1
DELETE/users/1Menghapus user ID 1

Format Response JSON

{
  "id": 1,
  "name": "Andi",
  "email": "andi@example.com",
  "created_at": "2024-01-01T00:00:00Z"
}

Status Code dalam REST API

  • 200 OK — request berhasil diproses
  • 201 Created — resource baru berhasil dibuat
  • 204 No Content — request berhasil tanpa data dikembalikan
  • 400 Bad Request — data request tidak valid
  • 401 Unauthorized — token autentikasi tidak valid
  • 404 Not Found — resource tidak ditemukan
  • 422 Unprocessable Entity — validasi data gagal
  • 500 Internal Server Error — kesalahan di server

Keuntungan REST API

  • Mudah dipahami dan diimplementasikan
  • Stateless memudahkan scaling server
  • Format JSON ringan dan didukung banyak bahasa
  • Bisa diakses dari berbagai platform: web, mobile, desktop