Konsep Dasar RESTful API dan Implementasi dengan Flask
Jump to navigation
Jump to search
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.
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.
Materi Pembelajaran
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.
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 |
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
Praktikum: Implementasi RESTful API dengan Flask
Instalasi Flask
pip install flask
Contoh Program Sederhana
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)
Latihan
- Soal 1: Jelaskan perbedaan antara metode HTTP GET dan POST.
- Soal 2: Tambahkan endpoint baru `/api/users/search?name=andi` untuk mencari user berdasarkan nama.
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%)
Referensi
- Flask Documentation: https://flask.palletsprojects.com/
- RESTful API Tutorial: https://restfulapi.net/