Konsep Dasar RESTful API dan Implementasi dengan Flask
Berikut adalah contoh modul pembelajaran berjudul **"Konsep Dasar RESTful API dan Implementasinya dengan Flask"**, cocok untuk mahasiswa IT semester awal atau menengah. Materi ini dapat digunakan dalam kelas atau sebagai bagian dari e-learning.
---
- 📘 **Modul Pembelajaran**
- Konsep Dasar RESTful API dan Implementasi dengan Flask
---
- 1. **Deskripsi Singkat**
Modul ini membahas konsep dasar RESTful API, arsitektur serta metode HTTP yang digunakan. Mahasiswa juga akan mempelajari bagaimana membangun RESTful API sederhana menggunakan framework Flask di Python.
---
- 2. **Tujuan Pembelajaran**
Setelah mempelajari modul ini, mahasiswa diharapkan mampu: - Memahami konsep REST dan RESTful API. - Menjelaskan metode HTTP (GET, POST, PUT, DELETE). - Mengembangkan RESTful API sederhana menggunakan Flask. - Menguji endpoint API menggunakan tools seperti Postman atau Curl.
---
- 3. **Materi Pembelajaran**
- 3.1. **Apa itu REST dan RESTful API?**
- **REST (Representational State Transfer)** adalah arsitektur standar komunikasi web berbasis HTTP. - **RESTful API** adalah API yang mengikuti prinsip REST, bersifat stateless dan memanfaatkan metode HTTP standar.
- 3.2. **Metode HTTP yang Umum Digunakan**
| Metode | Deskripsi | |--------|----------------------------------------| | GET | Mengambil data dari server | | POST | Mengirim data baru ke server | | PUT | Memperbarui data yang sudah ada | | DELETE | Menghapus data dari server |
- 3.3. **Struktur URL RESTful**
Contoh struktur API REST: ``` GET /api/users -> mengambil semua user GET /api/users/1 -> mengambil user dengan ID 1 POST /api/users -> menambahkan user baru PUT /api/users/1 -> memperbarui user dengan ID 1 DELETE /api/users/1 -> menghapus user dengan ID 1 ```
---
- 4. **Praktikum: Implementasi RESTful API dengan Flask**
- 4.1. **Instalasi Flask**
```bash pip install flask ```
- 4.2. **Contoh Program Sederhana**
```python from flask import Flask, jsonify, request
app = Flask(__name__)
- Simulasi database
users = [
{"id": 1, "name": "Andi"}, {"id": 2, "name": "Budi"}
]
@app.route("/api/users", methods=["GET"]) def get_users():
return jsonify(users)
@app.route("/api/users/<int:user_id>", methods=["GET"]) def get_user(user_id):
user = next((u for u in users if u["id"] == user_id), None) return jsonify(user) if user else ("User not found", 404)
@app.route("/api/users", methods=["POST"]) def add_user():
new_user = request.get_json() users.append(new_user) return jsonify(new_user), 201
@app.route("/api/users/<int:user_id>", methods=["PUT"]) def update_user(user_id):
updated_data = request.get_json() for user in users: if user["id"] == user_id: user.update(updated_data) return jsonify(user) return ("User not found", 404)
@app.route("/api/users/<int:user_id>", methods=["DELETE"]) def delete_user(user_id):
global users users = [u for u in users if u["id"] != user_id] return ("Deleted", 204)
if __name__ == "__main__":
app.run(debug=True)
```
---
- 5. **Latihan**
- Soal 1:
- 5. **Latihan**
Jelaskan perbedaan antara metode HTTP GET dan POST.
- Soal 2:
Tambahkan endpoint baru `/api/users/search?name=andi` untuk mencari user berdasarkan nama.
---
- 6. **Penilaian**
Penilaian dapat dilakukan berdasarkan: - Pemahaman konsep REST (20%) - Implementasi API menggunakan Flask (40%) - Penggunaan tools untuk pengujian API seperti Postman (20%) - Jawaban soal latihan (20%)
---
- 7. **Referensi**
- Flask Documentation: https://flask.palletsprojects.com/ - RESTful API Tutorial: https://restfulapi.net/
---
Kalau kamu mau, modul ini bisa aku buat jadi file PDF atau versi slide PowerPoint juga. Mau?