FresherKỹ thuậtThiết kế API
Điều gì làm cho một API trở nên RESTful?
Thử trả lời trước
Đáp án mẫu
REST là một phong cách kiến trúc, không phải giao thức. Một API RESTful tuân theo một số ràng buộc:
- Resource được định danh bằng URL (
/users/42), và thao tác bằng các phương thức HTTP chuẩn:GETđọc,POSTtạo,PUThoặcPATCHcập nhật,DELETExoá. - Stateless: mỗi request mang đủ thông tin server cần. Server không giữ session giữa các lần gọi.
- Giao diện thống nhất: đặt tên nhất quán, biểu diễn bằng JSON và dùng status code có ý nghĩa.
- Response có thể cache, được đánh dấu bằng header như
Cache-ControlvàETag. - Tách biệt client-server, và hệ thống nhiều lớp với proxy hoặc gateway ở giữa.
Phương thức an toàn (GET) không được thay đổi trạng thái. GET, PUT và DELETE là idempotent. Nhiều API tự nhận là "REST" bỏ qua hypermedia link (HATEOAS), vốn có trong định nghĩa gốc của Roy Fielding.
Ý chính
- Resource được định danh bằng URL và thao tác bằng phương thức HTTP
- Request stateless: server không giữ session giữa các lần gọi
- Giao diện thống nhất với status code có ý nghĩa
- Có thể cache và theo mô hình nhiều lớp
Câu hỏi nối tiếp thường gặp
- PUT và PATCH khác nhau thế nào?
- HATEOAS là gì và bạn có dùng không?
Lỗi thường gặp
- Đặt động từ vào URL, ví dụ /getUser
- Dùng POST cho mọi thứ