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
}