Kodeloka
  1. Kodeloka
  2. Kelas FastAPI
  3. Materi

Materi tertulis · 24 modul

Materi FastAPI

Kelas FastAPI berbahasa Indonesia: 24 modul tentang path dan query parameter, Pydantic v2, SQLAlchemy dan Alembic, dependency injection, autentikasi JWT, WebSocket, pengujian, dan deployment Docker.

Dasar & Frontend

  1. 1. Getting Started - Web App + REST APIMemahami arsitektur FastAPI, pemrograman Asynchronous (async/await), ASGI server Uvicorn, dan dokumentasi OpenAPI otomatis.
  2. 2. HTML Frontend & Jinja2 TemplatesMenyajikan tampilan HTML interaktif menggunakan Jinja2Templates dan menyajikan berkas statis (CSS/JS) dengan StaticFiles.
  3. 3. Path Parameters & Type HintsMengambil variabel dari URL path (/posts/{post_id}), konversi tipe otomatis (int, str), dan penanganan Error 422.

Data & Models

  1. 4. Query Parameters & Optional ValuesMenangani query string (/posts?limit=10&page=1), argumen opsional dengan typing.Optional, dan nilai default.
  2. 5. Request Body & Pydantic SchemasMendefinisikan skema data masukan JSON dengan Pydantic v2 BaseModel, Field validation, dan skema bertingkat.
  3. 6. Form Data & Asynchronous File UploadsMenerima form-data HTML biasa dengan Form() dan mengunggah berkas media (gambar profil) dengan UploadFile.
  4. 7. Response Models & Error HandlingFilter data keluaran dengan response_model, menetapkan HTTP status code standar, dan melempar HTTPException.

Database & Auth

  1. 8. Adding a Database (SQLAlchemy Setup & Session)Menghubungkan aplikasi ke database PostgreSQL / SQLite menggunakan SQLAlchemy 2.0 ORM dan SessionLocal pattern.
  2. 9. Database Models, Relationships & CRUDMendesain tabel SQLAlchemy (User & Post), relasi One-to-Many (ForeignKey), dan operasi CRUD (Create, Read, Update, Delete).
  3. 10. Database Migrations dengan AlembicMengelola perubahan skema database terversi menggunakan Alembic migrations tanpa merusak data produksi.
  4. 11. Dependency Injection System (Depends)Menguasai sistem Dependency Injection FastAPI dengan Depends(), reutilisasi logika koneksi DB & otentikasi user.
  5. 12. Password Hashing & Security dengan pwdlib (Argon2)Mengamankan password pengguna dengan algoritma hashing 1-way (Bcrypt/Argon2) menggunakan pwdlib PasswordHash.recommended().
  6. 13. User Registration & Login FlowMembangun alur pendaftaran akun pengguna, cek keunikan email/username, dan penerbitan token sesi.
  7. 14. Authentication & Authorization dengan JWT TokensMembuat dan mengekstrak JSON Web Tokens (JWT), menentukan masa berlaku token, dan mengamankan rute terproteksi.

Advanced & Deploy

  1. 15. APIRouter & Project Modular StructuringMemecah kode aplikasi menjadi modul-modul independen menggunakan APIRouter (users.py, posts.py, auth.py).
  2. 16. Lifespan Events & Manajemen Sumber Daya AplikasiMengganti on_event yang sudah usang dengan lifespan context manager untuk mengelola pool koneksi, klien HTTP, dan model machine learning.
  3. 17. Middleware & CORS ConfigurationMengizinkan akses frontend lintas origin dengan CORSMiddleware & membuat middleware kustom pemroses request.
  4. 18. Rate Limiting & Perlindungan APIMembatasi laju permintaan dengan algoritma sliding window berbasis Redis, menetapkan kuota per pengguna, serta menambahkan header standar dan security header.
  5. 19. Background Tasks & Asynchronous WorkersMenjalankan tugas asynchronous latar belakang (kirim email, pemrosesan media) tanpa memblokir respons HTTP client.
  6. 20. Celery, Redis Queue & Pekerjaan Latar BelakangMemindahkan pekerjaan berat ke luar siklus permintaan: kapan BackgroundTasks cukup, kapan butuh Celery, penjadwalan berkala, dan penanganan kegagalan.
  7. 21. WebSocket & Komunikasi Real-timeMembangun fitur real-time seperti chat dan notifikasi dengan WebSocket, mengelola koneksi aktif, serta menyiarkan pesan lintas worker memakai Redis Pub/Sub.
  8. 22. Automated Testing dengan Pytest & TestClientMenuliskan unit test & integration test untuk rute API menggunakan framework Pytest dan Starlette TestClient.
  9. 23. File Storage & AWS S3 IntegrationMenyimpan gambar profil & berkas media postingan ke Object Storage AWS S3 menggunakan SDK Boto3.
  10. 24. Docker Containerization & Production DeploymentMenyusun Dockerfile ter-optimasi, docker-compose.yml dengan PostgreSQL, dan deployment ke cloud server.