- Mencoba menelusuri stack dengan PyCharm layak dicoba.
- Kita bisa memeriksa nilai variabel yang digunakan, dan jika itu sebuah instance, atribut apa saja yang dimilikinya.
- FastAPI tampaknya tidak bisa ada tanpa Starlette.
- Kelas dasarnya juga dibuat dengan mewarisi Starlette, dan Request, Response, Router, Middleware, dan lainnya semuanya dibuat berbasis Starlette.
- Kita jadi lebih sering melihat kode Starlette daripada kode FastAPI.
- Muncul juga pemikiran bahwa mungkin kita bisa membuat aplikasi dengan Starlette saja, tanpa FastAPI.
- Peran Uvicorn ↔ Starlette ↔ FastAPI terasa menjadi lebih jelas.
- Uvicorn: antarmuka komunikasi eksternal
- Starlette: antarmuka operasi internal server
- FastAPI: berinteraksi dengan Uvicorn di atas Starlette dengan menambahkan kemudahan penulisan fungsi endpoint (Depends(), validasi parameter melalui Pydantic, dan sebagainya)
- Pemahaman tentang middleware jadi bertambah.
- Kita bisa melihat bahwa pemrosesan Request berjalan melalui ServerErrorMiddleware → middleware kustom → ExceptionMiddleware.
- Handler yang dipasang dengan
@app.exception_handler(Exception) diproses di ExceptionMiddleware, sedangkan error server lainnya diproses di ServerErrorMiddleware.
- Untuk mencegah middleware menjadi blocking, dijalankan lagi grup thread terpisah.
Belum ada komentar.