Difference between revisions of "Konsep dan prinsip RESTful API"
Jump to navigation
Jump to search
Onnowpurbo (talk | contribs) (Created page with "Berikut adalah modul "Konsep dan Prinsip RESTful API" sebagai bagian dari mata kuliah Pemrograman Web, dengan fokus pada pengantar RESTful API menggunakan Ubuntu 24.04. Modul...") |
Onnowpurbo (talk | contribs) |
||
Line 1: | Line 1: | ||
− | + | ==Konsep dan Prinsip RESTful API== | |
+ | * '''Platform''': Ubuntu 24.04 | ||
+ | * '''Target''': Mahasiswa atau pemula di bidang pemrograman web/API | ||
+ | * '''Durasi''': 2–3 jam | ||
− | + | ==✅ Tujuan Pembelajaran== | |
− | RESTful API | + | 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)== | |
− | |||
− | |||
− | |||
− | + | {| class="wikitable" | |
+ | ! 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== | |
− | + | {| class="wikitable" | |
+ | ! Metode !! Keterangan | ||
+ | |- | ||
+ | | GET || Mengambil data | ||
+ | |- | ||
+ | | POST || Menambah data | ||
+ | |- | ||
+ | | PUT || Mengubah data | ||
+ | |- | ||
+ | | DELETE || Menghapus data | ||
+ | |} | ||
− | + | ==🧩 7. Prinsip Desain RESTful Endpoint== | |
− | 1 | + | {| class="wikitable" |
+ | ! 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== | |
− | |||
− | |||
− | |||
− | |||
− | + | * [[Web Programming]] | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− |
Latest revision as of 10:20, 7 April 2025
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.