Appearance
Thuật ngữ & Tham khảo
Thuật ngữ
- REST (Representational State Transfer): kiến trúc do Roy Fielding đề xuất năm 2000, tận dụng chính HTTP làm giao thức ứng dụng.
- Richardson Maturity Model: mô hình 4 mức đánh giá một API "RESTful" tới đâu.
- HATEOAS (Hypermedia as the Engine of Application State): response API kèm theo link tới các hành động/resource liên quan tiếp theo — mức cao nhất của Richardson Maturity Model.
- Idempotent: gọi lại nhiều lần với cùng input cho ra cùng kết quả cuối cùng.
- Safe (HTTP method): không làm thay đổi trạng thái dữ liệu trên server.
- Idempotency key: chuỗi định danh duy nhất client gửi kèm request để server nhận biết và tránh xử lý trùng khi bị retry.
- API Contract: bản đặc tả chính thức (thường viết bằng OpenAPI) mô tả API, dùng làm nguồn sự thật cho mọi bên liên quan.
- OpenAPI / Swagger: chuẩn đặc tả API phổ biến nhất hiện nay; Swagger là tên cũ, OpenAPI là tên chuẩn hoá hiện tại.
- Contract-first: thiết kế API contract trước khi viết code implement.
- Code-first: viết code implement trước, sinh contract sau từ annotation/reflection.
- Cursor-based pagination: phân trang dùng 1 con trỏ (cursor) trỏ tới vị trí item cuối cùng đã lấy, thay vì đếm offset.
- RFC 9457 (Problem Details): chuẩn định dạng JSON thống nhất cho response lỗi API.
- CORS (Cross-Origin Resource Sharing): cơ chế server cho phép trình duyệt ở origin khác đọc response của mình.
- Same-origin policy: chính sách mặc định của trình duyệt chặn 1 trang web đọc dữ liệu từ origin khác.
- Preflight request: request
OPTIONStrình duyệt tự động gửi trước để hỏi server có cho phép request thật không. - Rate limiting: giới hạn số request 1 client được gọi trong 1 khoảng thời gian.
Tham khảo
- Did you know that REST was a PhD dissertation? — Bitesized Engineering
- Richardson Maturity Model — Wikipedia
- HTTP Status Codes for CRUD APIs: 2026 Practitioner Guide — Moesif
- Best Practices for API Error Handling — Zuplo
- REST API URI Naming Conventions and Best Practices — restfulapi.net
- How to Choose the Right REST API Naming Conventions — Zuplo
- Contract-First Integration: A Practical Guide — DEV Community
- API-First, API Design-First, or Code-First — Stoplight
- REST API Best Practices — Postman Blog
- Implementing Pagination, Filtering and Sorting in REST APIs — Medium