Cara Membuat HTTP POST Listener dengan Python FastAPI

Implementasi HTTP POST Listener dengan FastAPI

FastAPI adalah framework web modern berbasis Python yang sangat efisien untuk menangani request HTTP POST. Untuk membuat listener, Anda cukup menggunakan dekorator @app.post dan mendefinisikan model data menggunakan Pydantic untuk validasi otomatis. Berikut adalah implementasi dasar yang siap digunakan.

Contoh Kode Implementasi

from fastapi import FastAPI
from pydantic import BaseModel

app = FastAPI()

class Payload(BaseModel):
    id: int
    data: str
    status: str

@app.post("/webhook")
async def receive_data(payload: Payload):
    # Proses data yang diterima di sini
    print(f"Data diterima: {payload.dict()}")
    return {"message": "Data berhasil diproses", "received_id": payload.id}

Langkah Teknis Menjalankan Listener

  1. Instal dependensi: pip install fastapi uvicorn.
  2. Simpan kode di atas dalam file bernama main.py.
  3. Jalankan server dengan perintah: uvicorn main:app --reload.
  4. Server akan aktif di http://127.0.0.1:8000/webhook.
  5. Kirim request POST menggunakan cURL atau Postman dengan header Content-Type: application/json.

Tabel Perbandingan Metode Request

MetodeFungsiPenggunaan di FastAPI
GETMengambil data@app.get()
POSTMengirim data baru@app.post()
PUTMemperbarui data@app.put()
DELETEMenghapus data@app.delete()

Tips Troubleshooting

  • Error 422 Unprocessable Entity: Terjadi jika format JSON yang dikirim tidak sesuai dengan model Pydantic yang didefinisikan. Pastikan tipe data (int, str, dll) sudah benar.
  • Port Terpakai: Jika port 8000 sudah digunakan, jalankan dengan --port 8080.
  • Asynchronous: Gunakan async def untuk operasi I/O bound agar performa tetap optimal di bawah beban tinggi.