- Thử lần theo stack trace bằng PyCharm cũng rất đáng làm.
- Có thể kiểm tra các biến đang được dùng có giá trị gì, nếu là instance thì nó có những attr nào.
- Có vẻ FastAPI không thể tồn tại nếu thiếu Starlette.
- Ngay cả lớp cơ bản cũng được tạo bằng cách kế thừa từ Starlette, và Request, Response, Router, Middleware đều được xây dựng dựa trên Starlette.
- Bạn sẽ thấy mình đọc mã của Starlette còn nhiều hơn cả mã FastAPI.
- Cũng khiến người ta nghĩ rằng có thể bỏ FastAPI ra và thử xây ứng dụng chỉ với Starlette.
- Vai trò của Uvicorn ↔ Starlette ↔ FastAPI trở nên rõ ràng hơn.
- Uvicorn: giao diện giao tiếp với bên ngoài
- Starlette: giao diện vận hành bên trong server
- FastAPI: bổ sung trên Starlette sự tiện lợi khi viết hàm endpoint (Depends(), kiểm tra param bằng Pydantic, v.v.) rồi tương tác với Uvicorn
- Hiểu hơn một chút về middleware.
- Có thể thấy việc xử lý Request diễn ra theo thứ tự ServerErrorMiddleware → các middleware tùy chỉnh → ExceptionMiddleware.
- Handler gắn bằng
@app.exception_handler(Exception) sẽ được xử lý trong ExceptionMiddleware, còn các lỗi server khác sẽ được xử lý trong ServerErrorMiddleware.
- Để tránh chặn các middleware, một nhóm thread riêng sẽ được chạy lại.
Chưa có bình luận nào.