Konsep dan prinsip RESTful API

From OnnoWiki
Jump to navigation Jump to search

Konsep dan Prinsip RESTful API

  • Platform: Ubuntu 24.04
  • Target: Mahasiswa atau pemula di bidang pemrograman web/API
  • Durasi: 2–3 jam

βœ… Tujuan Pembelajaran

Setelah menyelesaikan modul ini, peserta akan dapat:

  • Memahami konsep dasar dan prinsip RESTful API.
  • Mengetahui struktur HTTP request/response.
  • Mencoba membuat dan mengakses RESTful API secara lokal menggunakan Ubuntu 24.04.
  • Menguji endpoint API menggunakan `curl` dan Postman.

🧠 1. Pengantar RESTful API

Apa itu REST?

REST (Representational State Transfer) adalah arsitektur yang digunakan untuk membuat layanan web (API) yang ringan, cepat, dan skalabel.

Apa itu RESTful API?

RESTful API adalah implementasi dari REST yang menggunakan protokol HTTP untuk komunikasi antar sistem.

Ciri-ciri RESTful API:

  • Stateless: Setiap request berdiri sendiri, tidak menyimpan state.
  • Client-Server: Pemisahan antara client dan server.
  • Cacheable: Response bisa disimpan di cache.
  • Uniform Interface: Konvensi endpoint yang konsisten.
  • Layered System: Bisa memiliki banyak layer (misalnya: proxy, cache).


πŸ”§ 2. Tools yang Digunakan (Ubuntu 24.04)

Tool Keterangan
`curl` Untuk testing API via terminal
`Python3 + Flask` Untuk membuat REST API sederhana
`Postman` (opsional) GUI untuk uji coba endpoint
`pip` Manajer paket Python

βš™οΈ 3. Instalasi (Ubuntu 24.04)

sudo apt update
sudo apt install python3 python3-pip -y
pip install flask


πŸ—οΈ 4. Contoh RESTful API Sederhana dengan Flask

Struktur dasar API:

# simpan sebagai app.py
from flask import Flask, jsonify, request

app = Flask(__name__)

# Data dummy
books = [
    {"id": 1, "title": "1984", "author": "George Orwell"},
    {"id": 2, "title": "Animal Farm", "author": "George Orwell"}
]

# Endpoint GET (ambil semua buku)
@app.route('/books', methods=['GET'])
def get_books():
    return jsonify(books) 

# Endpoint POST (tambah buku)
@app.route('/books', methods=['POST'])
def add_book():
    new_book = request.get_json()
    books.append(new_book)
    return jsonify(new_book), 201

if __name__ == '__main__':
    app.run(debug=True)

Jalankan API:

python3 app.py

API akan aktif di: `http://127.0.0.1:5000`


πŸ§ͺ 5. Uji API dengan `curl`

GET:

curl http://127.0.0.1:5000/books

POST:

curl -X POST -H "Content-Type: application/json" \
     -d '{"id":3,"title":"Brave New World","author":"Aldous Huxley"}' \
     http://127.0.0.1:5000/books

πŸ”„ 6. Metode HTTP dan Kegunaannya

Metode Keterangan
GET Mengambil data
POST Menambah data
PUT Mengubah data
DELETE Menghapus data

🧩 7. Prinsip Desain RESTful Endpoint

Resource Endpoint HTTP Method Aksi
Buku /books GET Ambil semua buku
Buku /books POST Tambah buku baru
Buku /books/1 GET Ambil buku id 1
Buku /books/1 PUT Update buku id 1
Buku /books/1 DELETE Hapus buku id 1

🧠 8. Catatan Tambahan

  • Gunakan `Postman` untuk pengalaman GUI.
  • REST bukan satu-satunya jenis API (lihat juga: GraphQL, gRPC).
  • Untuk deployment, bisa pakai `gunicorn`, `nginx`, atau `Docker`.

🎯 Penutup

RESTful API adalah dasar penting dalam pengembangan web dan sistem backend modern. Dengan memahami konsep ini di Ubuntu 24.04, kamu bisa mulai membangun sistem terintegrasi antar aplikasi secara efisien.

Pranala Menarik