22 điểm bởi rumbarum 2023-08-21 | Chưa có bình luận nào. | Chia sẻ qua WhatsApp
  1. Thử lần theo stack trace bằng PyCharm cũng rất đáng làm.
    1. 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.
  2. Có vẻ FastAPI không thể tồn tại nếu thiếu Starlette.
    1. 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.
    2. Bạn sẽ thấy mình đọc mã của Starlette còn nhiều hơn cả mã FastAPI.
    3. 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.
  3. Vai trò của Uvicorn ↔ Starlette ↔ FastAPI trở nên rõ ràng hơn.
    1. Uvicorn: giao diện giao tiếp với bên ngoài
    2. Starlette: giao diện vận hành bên trong server
    3. 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
  4. Hiểu hơn một chút về middleware.
    1. Có thể thấy việc xử lý Request diễn ra theo thứ tự ServerErrorMiddleware → các middleware tùy chỉnh → ExceptionMiddleware.
    2. 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.
    3. Để 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.

Chưa có bình luận nào.