REST API Post Management

Thông tin API

https://buiphukhuyen.io.vn/api/post

Phân quyền MSSV

Mỗi sinh viên có dữ liệu riêng biệt theo MSSV

Hỗ trợ Mobile

CORS được cấu hình đầy đủ cho Flutter & các nền tảng khác

Bảo mật & Rate Limiting

Dữ liệu được mã hóa, phân quyền theo MSSV + giới hạn 200 requests/15p, 20 req/phút, 5 posts/phút

Thiết lập MSSV

Ví dụ: 1611061839 hoặc 25802142145
GET
📋 Lấy danh sách bài viết
Lấy tất cả bài viết của bạn (không bao gồm nội dung chi tiết)
Địa chỉ (URL): /api/post?username={MSSV}
Phương thức: GET
Tham số: username (bắt buộc - MSSV 10-11 số)
Phản hồi thành công (200): Mảng các đối tượng {id, title}
Lỗi có thể gặp:
400: {"message": "Username (MSSV) là bắt buộc"} 400: {"message": "MSSV phải là 10 hoặc 11 chữ số"}
Xem trước yêu cầu
URL: GET /api/post?username=

GET
🔍 Xem chi tiết bài viết
Lấy thông tin đầy đủ của một bài viết cụ thể
Địa chỉ (URL): /api/post?id={ID}&username={MSSV}
Phương thức: GET
Tham số: id (bắt buộc), username (bắt buộc)
Phản hồi thành công (200): Đối tượng đầy đủ gồm {id, title, body}
Lỗi có thể gặp:
400: {"message": "Username (MSSV) là bắt buộc"} 400: {"message": "MSSV phải là 10 hoặc 11 chữ số"} 404: {"message": "Không tìm thấy bài viết"}
Xem trước yêu cầu
URL: GET /api/post?id=1&username=

POST
➕ Tạo bài viết mới
Đăng một bài viết mới lên hệ thống
Địa chỉ (URL): /api/post?username={MSSV}
Phương thức: POST
Tham số URL: username (bắt buộc - MSSV 10-11 số)
Body JSON:
{ "title": "Tiêu đề bài viết", "body": "Nội dung bài viết..." }

Phản hồi thành công (201): Đối tượng đầy đủ {id, title, body}
Lỗi có thể gặp:
400: {"message": "Request body là bắt buộc"} 400: {"message": "Username (MSSV) là bắt buộc"} 400: {"message": "Title và body là bắt buộc"} 400: {"message": "MSSV phải là 10 hoặc 11 chữ số"}
Xem trước yêu cầu
URL: POST /api/post?username= Body: { "title": "Tiêu đề bài viết", "body": "Nội dung bài viết..." }

PUT
✏️ Cập nhật bài viết
Chỉnh sửa thông tin của bài viết đã có
Địa chỉ (URL): /api/post?username={MSSV}
Phương thức: PUT
Tham số URL: username (bắt buộc - MSSV 10-11 số)
Body JSON:
{ "id": 1, "title": "Tiêu đề đã cập nhật", "body": "Nội dung đã cập nhật..." }

Phản hồi thành công (200): Đối tượng đầy đủ {id, title, body}
Lỗi có thể gặp:
400: {"message": "Request body là bắt buộc"} 400: {"message": "Username (MSSV) là bắt buộc"} 400: {"message": "Title và body là bắt buộc"} 400: {"message": "MSSV phải là 10 hoặc 11 chữ số"} 404: {"message": "Không tìm thấy bài viết với ID: {id}"} 400: {"message": "Bài viết này không thuộc về bạn"}
Xem trước yêu cầu
URL: PUT /api/post?username= Body: { "id": 1, "title": "Tiêu đề đã cập nhật", "body": "Nội dung đã cập nhật..." }

DELETE
🗑️ Xóa bài viết
Xóa vĩnh viễn một bài viết khỏi hệ thống
Địa chỉ (URL): /api/post?username={MSSV}
Phương thức: DELETE
Tham số URL: username (bắt buộc - MSSV 10-11 số)
Body JSON:
{ "id": 1 }

Phản hồi thành công (200): {"message": "Xóa bài viết thành công"}
Lỗi có thể gặp:
400: {"message": "Request body là bắt buộc"} 400: {"message": "Username (MSSV) là bắt buộc"} 400: {"message": "MSSV phải là 10 hoặc 11 chữ số"} 404: {"message": "Không tìm thấy bài viết với ID: {id}"} 400: {"message": "Bài viết này không thuộc về bạn"}
Xem trước yêu cầu
URL: DELETE /api/post?username= Body: { "id": 1 }