Số 02. Dev gà - RESTfull
Hello! I'm Zu.Doan
Series này mình muốn tạo ra để note lại những kiến thức, đoạn code, issues, solutions mà mình gặp phải trong quá trình làm việc với Project thực tế.
1. RESTfull trong thực tế
Tham khảo: https://www.restapitutorial.com/lessons/whatisrest.html
1.1 HTTP method trong REST
GET: sử dụng để lấy thông tin từ server
- 200 (OK): nếu thông tin được tìm thấy và trả về
- 404 (NOT FOUND): nếu thông tin không được tìm thấy
HEAD: sử dụng tương tự GET nhưng không trả về nội dung đã tìm được (Không nằm trong chuẩn RESTfull - không sử dụng trong RESTfull)
POST: sử dụng để tạo mới một tài nguyên
- 201 (CREATED): nếu tạo thành công tài nguyên mới - Response data: là dữ liệu mới được tạo.
- 204 (NO CONTENT): nếu tạo thành công tài nguyên mới - Response data: rỗng (không trả về dữ liệu mứi được tạo)
PUT: sử dụng để cập nhật một tài nguyên đã tồn tại với phần nội dung gửi lên sẽ ghi đè toàn bộ nội dung trong tài nguyên đó.
- 200 (OK): nếu cập nhật thành công tài nguyên đó (dựa trên một id nào đó -vd: id/name/... miễn là một unique field)
PATCH: sử dụng để cập nhật một tài nguyên đã tồn tại với phần nội dung gửi lên sẽ chỉ ghi đè các thông tin tương ứng trong tài nguyên đõ.
- 200 (OK): nếu cập nhật thành công tài nguyên đó (dựa trên một id nào đó -vd: id/name/... miễn là một unique field)
DELETE: sử dụng để xóa một tài nguyên đang tồn tại.
- 200 (OK): nếu xóa thành công tài nguyên đó (dựa trên một id nào đó -vd: id/name/... miễn là một unique field) - Response data: thường là dữ liệu đã bị xóa hoặc bất kỳ một thông tin nào khác dựa vào yêu cầu của từng trường hợp cụ thể.
- 204 (NO CONTENT): nếu xóa thành công tài nguyên đó (dựa trên một id nào đó -vd: id/name/... miễn là một unique field) - Response data: rỗng (không trả về dữ liệu mứi được tạo)
1.2 Thiết kế URI sao cho đúng
- URI nên mô tả chính xác nội dung của URI đó thực thi/trả về
- Các tài nguyên mô tả trong URI nên được để ở dạng số nhiều
Ví dụ:
POST http://www.example.com/customers
GET | PUT | DELETE http://www.example.com/customers/66432
- Trường hợp đặc biệt khi sử dụng số ít đó là việc thể hiện sự bao trùm, duy nhất
Ví dụ:
GET | PUT | DELETE http://www.example.com/configuration
GET | PUT | DELETE http://www.example.com/customers/66432/configuration
- Áp dụng tương tự cho việc phân cấp trong URI
Ví dụ:
POST http://www.example.com/customers/66432/orders
GET | PUT | DELETE http://www.example.com/customers/66432/orders/1000
