Tài liệu API
Tài liệu này mô tả các endpoint REST API cho backend Phân đoạn Mảnh vỡ AIC-HCMUS (FastAPI).
API Xác thực
GET /current-user
- Mô tả: Lấy thông tin người dùng hiện tại đã xác thực.
- Yêu cầu: Cần token hợp lệ trong header.
-
Phản hồi:
- Thành công:
- Lỗi:
-
POST /register
- Mô tả: Đăng ký người dùng mới.
- Request Body:
-
Phản hồi:
- Thành công:
- Lỗi:
-
POST /login
- Mô tả: Xác thực người dùng và cung cấp token truy cập.
- Request Body:
- Phản hồi:
- Thành công:
- Lỗi:
API Xác thực Google
GET /google-login
- Mô tả: Khởi tạo đăng nhập Google OAuth2.
-
Phản hồi: Chuyển hướng đến trang ủy quyền của Google.
-
GET /google-callback
- Mô tả: Xử lý callback từ Google sau khi người dùng ủy quyền.
- Yêu cầu: Cần phiên làm việc hợp lệ.
- Phản hồi:
- Thành công: Chuyển hướng đến frontend với token truy cập dưới dạng tham số query.
- Lỗi:
API Ảnh
GET /display_images
- Mô tả: Lấy danh sách các ảnh đã tải lên bởi người dùng hiện tại.
- Yêu cầu: Cần xác thực.
-
Phản hồi:
- Thành công:
- Lỗi:
-
GET /fetch_image/{filename}
- Mô tả: Lấy một ảnh theo tên tệp.
- Tham số đường dẫn:
filename
- Tên của tệp ảnh. -
Phản hồi:
- Thành công: Trả về nội dung ảnh với MIME type phù hợp.
- Nếu không tìm thấy ảnh:
- Lỗi:
-
GET /check_image_exists
- Mô tả: Kiểm tra xem một ảnh có tồn tại trên máy chủ hay không.
- Tham số query:
img_name
- Tên của ảnh cần kiểm tra. - Phản hồi:
- Nếu ảnh tồn tại:
- Nếu ảnh không tồn tại:
- Lỗi:
API Dự đoán
POST /upload
- Mô tả: Tải lên một ảnh để xử lý.
- Request Body: Tệp ảnh.
-
Phản hồi:
- Thành công:
- Lỗi:
-
POST /upload_predict/{real_radius}&{unit}&{conf}&{iou}
- Mô tả: Tải lên một ảnh và bắt đầu dự đoán.
- Tham số đường dẫn:
real_radius
: Bán kính thực của đối tượng.unit
: Đơn vị đo lường.conf
: Ngưỡng độ tin cậy.iou
: Ngưỡng Intersection over Union.
- Request Body: Tệp ảnh.
-
Phản hồi:
- Thành công:
- Lỗi:
-
GET /task_status/{task_id}
- Mô tả: Lấy trạng thái của một tác vụ dự đoán.
- Tham số đường dẫn:
task_id
- ID của tác vụ. -
Phản hồi:
- Thành công:
- Lỗi:
-
GET /fetch_prediction/{task_id}
- Mô tả: Lấy kết quả dự đoán cho một tác vụ.
- Tham số đường dẫn:
task_id
- ID của tác vụ. -
Phản hồi:
- Thành công: Trả về dữ liệu dự đoán.
- Lỗi:
-
GET /get_user_tasks
- Mô tả: Lấy tất cả các tác vụ liên quan đến người dùng hiện tại.
-
Phản hồi:
- Thành công:
- Lỗi:
-
GET /re_predict/{real_radius}&{img_name}&{unit}&{conf}&{iou}
- Mô tả: Chạy lại dự đoán trên một ảnh với các tham số mới.
- Tham số đường dẫn: Tương tự như
/upload_predict
. -
Phản hồi:
- Thành công:
- Lỗi:
-
GET /get_prediction/{task_id}
- Mô tả: Lấy chi tiết dự đoán cho một tác vụ cụ thể.
- Tham số đường dẫn:
task_id
- ID của tác vụ. -
Phản hồi:
- Thành công: Trả về chi tiết dự đoán.
- Lỗi:
-
GET /download_results/{task_id}
- Mô tả: Tải xuống kết quả của một tác vụ dự đoán.
- Tham số đường dẫn:
task_id
- ID của tác vụ. - Phản hồi:
- Thành công: Trả về tệp ZIP chứa kết quả.
- Lỗi:
Phản hồi Lỗi
401 Unauthorized
: Xác thực không hợp lệ hoặc thiếu.404 Not Found
: Không tìm thấy tài nguyên.422 Unprocessable Entity
: Dữ liệu đầu vào không hợp lệ.
Lưu ý:
Tất cả các endpoint (trừ /login/
và /register
) đều yêu cầu xác thực qua token.