Konsep dan prinsip RESTful API
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.