REST API 

REST is a simple way to organize interactions between independent systems.

HTTP is the protocol that allows for sending documents back and forth on the web.

Yêu cầu về REST

  • Sự nhất quán trong cả API
  • Tồn tại không trang thái (ví dụ, không có server-side session)
  • Sử dụng HTTP status code khi cần thiết
  • Sử dụng URL endpoint với logical hierarchy
  • Versioning trong URL chứ không phải trong HTTP header
Route HTTP Verb Description
/api/books GET Get all the books.
/api/books POST Create a new book.
/api/books/:book_id GET Get a single book.
/api/books/:book_id PUT Update a book with new info.
/api/books/:book_id DELETE Delete a book.

Ví dụ routes theo dạng REST

GET: Truy xuất tài nguyên

POST: Tạo tài nguyên mới

PUT: Thay đổi trạng thái, cập nhật tài nguyên 

DELETE: xóa tài nguyên

Tham khảo thêm tại restapitutorial

BEST PRACTICES

Sử dụng HTTP verb phù hợp và API routes dùng danh từ

GET/ POST/ PUT/ DELETE

  • Good: /users/12345
  • Poor: /api?type=user&id=23
  • Good: /users/12345/orders
  • Poor: /user/12345/order

Dùng danh từ 

Dùng số nhiều

Safe vs Unsafe

Phương thức HTTP đc coi là safe khi không thay đổi tài nguyên => Chỉ GET là safe

Idempotent

Kết quả trả về không thay đổi - thực hiện cùng 1 phương thức n lần thì kết quả nhận đc n lần đó đều giống nhau

GET/ PUT/ DELETE đc coi là idempotent

POST not idempotent 

Một số tính chất của HTTP verbs

Sử dụng HTTP status phù hợp

 

2xx:  Success e.g. 200 OK

3xx: Redirection 

4xx: Client Error e.g. 400 BAD REQUEST, 404 NOT FOUND

5xx: Server Error e.g.  500 Internal Server Error

 

REST API

By Linh Ngo

REST API

  • 194