Konsep Dasar RESTful API dan Implementasi dengan Flask

From OnnoWiki
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


Pranala Menarik