Async & Await
Penjelasan
FastAPI mendukung fungsi async def maupun def biasa untuk path operation. Pakai async def kalau di dalamnya ada operasi I/O yang mendukung await (mis. query database async, HTTP call ke API lain) — ini memungkinkan server menangani request lain selagi menunggu I/O selesai, tanpa memblokir thread.
Contoh Konsep
import httpx
@app.get('/cuaca')
async def ambil_cuaca():
async with httpx.AsyncClient() as client:
response = await client.get('https://api.cuaca.example/jakarta')
return response.json()
Praktikum
Ubah endpoint ambil_data menjadi async def dan gunakan await client.get() untuk memanggil API eksternal.
Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.
Tips
Jangan pakai library sinkron (mis. requests biasa) di dalam async def tanpa await — itu tetap memblokir event loop. Kalau library-mu tidak punya versi async, pakai def biasa (FastAPI otomatis menjalankannya di thread pool terpisah).