FastAPI
Pengenalan FastAPI
Apa itu FastAPI, cara instalasi, dan cara menjalankan server pertama dengan uvicorn.
Path Operations
Mendaftarkan endpoint lewat decorator @app.get, @app.post, @app.put, dan @app.delete.
Path Parameters & Type Hints
Menerima parameter dinamis dari URL, divalidasi otomatis lewat Python type hints.
Query Parameters
Menerima parameter opsional/wajib dari query string lewat parameter fungsi biasa.
Request Body dengan Pydantic
Memvalidasi body JSON secara otomatis lewat model Pydantic yang mewarisi BaseModel.
Validasi Lanjutan dengan Field
Menambahkan aturan validasi lebih detail lewat Field(): panjang minimal, nilai maksimal, default, dan deskripsi.
Response Model
Mengontrol bentuk data yang dikembalikan lewat parameter response_model dan status_code.
Dependency Injection dengan Depends()
Berbagi logic antar endpoint (mis. koneksi database, autentikasi) lewat sistem Depends() bawaan FastAPI.
Error Handling
Melempar error HTTP terstruktur lewat HTTPException dan membuat exception handler custom.
Async & Await
Mendeklarasikan path operation sebagai async def untuk operasi I/O non-blocking.
Database dengan SQLAlchemy
Menghubungkan FastAPI ke database lewat SQLAlchemy: engine, Session, dan dependency get_db().
CRUD Lengkap dengan Database
Menulis operasi create, read, update, delete lengkap memakai SQLAlchemy dan Pydantic bersamaan.
Authentication dengan OAuth2 & JWT
Melindungi endpoint lewat OAuth2PasswordBearer dan memvalidasi JSON Web Token.
Middleware & CORS
Menambahkan middleware custom dan mengizinkan request lintas origin lewat CORSMiddleware.
Background Tasks
Menjalankan tugas setelah response dikirim lewat parameter BackgroundTasks, tanpa membuat client menunggu.
File Upload
Menerima file upload dari client lewat parameter UploadFile.
Router Terpisah dengan APIRouter
Memecah endpoint jadi beberapa file lewat APIRouter, lalu digabungkan ke app utama.
Dokumentasi Otomatis: Swagger & ReDoc
Memanfaatkan dokumentasi interaktif otomatis di /docs dan /redoc, dan menyesuaikannya lewat OpenAPI metadata.
Tugas Akhir
Latihan akhir menggabungkan Pydantic, SQLAlchemy, dependency injection, dan JWT dalam satu REST API Catatan.