Thực thi một backend sử dụng Express, Mongoose ODM, và Jest (phần 19)

Cung cấp một REST API sử dụng Express

Có các tầng dữ liệu và dịch vụ của chúng ta thiết lập, chúng ta có một khung tốt cho là có thể viết backend của
chúng. Tuy nhiên, chúng ta vẫn cần một giao diện cái cho phép người dùng truy cập backend của chúng ta. Giao diện
này sẽ là một representational state transfer (REST) API. Một REST API cung cấp một cách thức để truy cập máy chủ
của chúng ta qua các HTTP requests, cái chúng ta có thể sử dụng khi chúng ta phát triển frontend của chúng ta.
rest
Như chúng ta có thể thấy, các máy khách có thể gửi các yêu cầu tới máy chủ backend của chúng ta, và máy chủ sẽ
trả lời chúng. Có 5 phương pháp sử dụng phổ biến trong kiến trúc dựa trên REST:
+ GET: Cái này được sử dụng để đọc các tài nguyên. Nhìn chung, nó không nên ảnh hưởng đến trạng thái CSDL và,
cung cấp cùng đầu vào, nó nên trả về cùng đầu ra (trừ phi trạng thái CSDL đã bị thay đổi qua các yêu cầu khác).
Hành vi này được gọi là idempotence. Trong trả lời yêu cầu GET thành công, một máy chủ thường trả về các tài nguyên
với một 200 OK status code.
+ POST: Cái này được sử dụng để tạo các tài nguyên mới, từ thông tin cung cấp trong body yêu cầu. Trong trả lời
một POST request thành công, một máy chủ thường trả về hoặc object tạo mới với một 201 Created status code hoặc
một trả lời rỗng (với 201 Created status code) với một URL trong Location header cái trỏ tới tài nguyên tạo mới.
+ PUT: Cái này được sử dụng để cập nhật một tài nguyên hiện có với một ID đã cho, thay thế tài nguyên hoàn toàn
với dữ liệu mới cung cấp trong body yêu cầu. Trong một vài trường hợp, nó cũng có thể được sử dụng để tạo một tài
nguyên mới với một ID chỉ ra máy khách. Trong trả lời một PUT request thành công, một máy chủ hoặc trả về tài
nguyên cập nhật với một 200 OK status code, 204 No Content nếu nó không trả về tài nguyên cập nhật, hoặc 201 Created
nếu nó tạo một tài nguyên mới.
+ PATCH: Cái này được sử dụng để điều chỉnh một tài nguyên hiện có với một ID đã cho, chỉ cập nhật các trường
chỉ ra trong body yêu cầu thay vì thay thế toàn bộ tài nguyên. Trong trả lời một PATCH request thành công, một
máy chủ hoặc trả về tài nguyên cập nhật với 200 OK hoặc 204 No Content nếu nó không trả về tài nguyên cập nhật.
+ DELETE: Cái này được sử dụng để xóa một tài nguyên với một ID đã cho. Trong trả lời một DELETE request thành
công, một máy chủ hoặc trả về tài nguyên bị xóa với 200 OK hay 204 No Content nếu nó không trả về tài nguyên bị
xóa.
Các HTTP REST API routes thường được định nghĩa trong một cấu trúc giống thư mục. Nó luôn là một ý tưởng tốt để
gắn tiền tố tất cả các routes với /api/v1/ (v1 là phiên bản của định nghĩa API, bắt đầu với 1). Nếu chúng ta
muốn thay đổi định nghĩa API sau này, chúng ta sau đó có thể dễ dàng chạy /api/v1/ và /api/v2/ song song trong
một lúc cho đến khi mọi thứ được di trú.

Chia sẻ