Study
← Semua Kategori

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.