2.2. Tạo các endpoint cơ bản
1. Endpoint là gì?
Endpoint là một địa chỉ URL trong một API mà client (người dùng hoặc ứng dụng) có thể gửi yêu cầu (request) để truy cập vào tài nguyên hoặc thực hiện một hành động nào đó trên server. Mỗi endpoint thường kết hợp với một phương thức HTTP như GET, POST, PUT, DELETE để định nghĩa hành động tương ứng mà API sẽ thực hiện trên tài nguyên.
Ví dụ:
/users
: Đại diện cho tài nguyên "người dùng" và có thể được sử dụng để lấy danh sách người dùng, thêm mới, cập nhật hoặc xóa người dùng./products/:id
: Đại diện cho một tài nguyên cụ thể là một sản phẩm, trong đó:id
là giá trị động (ví dụ:/products/1
để lấy hoặc chỉnh sửa sản phẩm có ID là 1).
2. Tại sao cần dùng endpoint?
Endpoint giúp xác định rõ ràng nơi mà một client có thể truy cập tài nguyên, và mỗi endpoint sẽ tương ứng với một hành động cụ thể. Điều này tạo ra một kiến trúc rõ ràng và dễ quản lý, giúp các hệ thống client có thể giao tiếp với server một cách chính xác và nhất quán.
Lý do sử dụng endpoint:
Phân chia tài nguyên: Mỗi tài nguyên (người dùng, sản phẩm, đơn hàng, v.v.) đều được biểu diễn dưới dạng một URL cụ thể, giúp dễ dàng truy cập và quản lý.
Xác định hành động qua HTTP methods: Sử dụng các phương thức HTTP khác nhau (GET, POST, PUT, DELETE) cho cùng một endpoint để xác định rõ hành động muốn thực hiện (lấy dữ liệu, tạo mới, cập nhật hoặc xóa).
Dễ dàng mở rộng: Khi API cần mở rộng, bạn chỉ cần thêm các endpoint mới tương ứng với các tài nguyên mới mà không phải thay đổi cấu trúc hiện có.
Tương thích với REST: Kiến trúc RESTful sử dụng các endpoint kết hợp với HTTP methods để tạo ra một hệ thống API linh hoạt, dễ hiểu, và có thể tương thích với nhiều hệ thống khác.
3.Cấu trúc chung của một endpoint trong Express.js
Một endpoint trong Express.js có cấu trúc cơ bản sau:
app
(Express application instance):app
là đối tượng đại diện cho ứng dụng Express. Khi tạo ứng dụng bằngconst app = express()
, nó cho phép bạn định nghĩa các route (đường dẫn) và phương thức xử lý yêu cầu.
method
(Phương thức HTTP):Là phương thức HTTP xác định hành động sẽ thực hiện trên tài nguyên. Một số phương thức phổ biến:
GET: Lấy dữ liệu từ server (không làm thay đổi dữ liệu trên server).
POST: Tạo mới tài nguyên trên server.
PUT: Cập nhật tài nguyên đã tồn tại trên server.
DELETE: Xóa tài nguyên khỏi server.
path
(Đường dẫn URL):Là đường dẫn xác định tài nguyên mà bạn muốn thao tác. Nó có thể là một đường dẫn tĩnh hoặc động:
Tĩnh: Ví dụ,
/users
sẽ luôn trỏ đến tài nguyên "người dùng".Động: Ví dụ,
/users/:id
sử dụng:id
như một biến động, cho phép bạn thao tác với một tài nguyên cụ thể (ví dụ, người dùng có ID 1 sẽ là/users/1
).
callback
(Hàm xử lý):Đây là hàm xử lý được gọi mỗi khi có yêu cầu đến endpoint đó. Hàm này nhận hai đối số quan trọng:
req
(request): Chứa thông tin về yêu cầu từ client. Bạn có thể lấy các dữ liệu như tham số, body, headers, query strings từreq
.res
(response): Được sử dụng để gửi phản hồi trở lại cho client. Bạn có thể gửi dữ liệu dạng JSON, văn bản hoặc mã trạng thái HTTP quares
.
4. Ví dụ tạo các endpoint cơ bản trong Express.js
Sau khi hiểu rõ về các endpoint và tầm quan trọng của chúng, ta sẽ tiến hành tạo các endpoint cơ bản trong ứng dụng Express.js.
a. Khởi tạo dự án Express
Đầu tiên, tạo một thư mục dự án và khởi tạo dự án:
Tạo file chính app.js
:
b. Tạo endpoint GET
để lấy dữ liệu (Retrieve data):
Ví dụ, tạo một endpoint để lấy danh sách người dùng:
Giải thích:
Endpoint:
/users
Phương thức HTTP:
GET
– Sử dụng để lấy dữ liệu từ server.Khi client truy cập vào
http://localhost:3000/users
, server sẽ trả về danh sách người dùng dưới dạng JSON.
c. Tạo endpoint POST
để thêm mới dữ liệu (Create data):
Ví dụ, tạo endpoint để thêm một người dùng mới:
Giải thích:
Endpoint:
/users
Phương thức HTTP:
POST
– Sử dụng để gửi dữ liệu mới đến server.Client sẽ gửi dữ liệu người dùng mới thông qua body của request, server sẽ phản hồi lại với thông báo rằng người dùng mới đã được tạo.
d. Tạo endpoint PUT
để cập nhật dữ liệu (Update data):
Ví dụ, tạo endpoint để cập nhật thông tin người dùng:
Giải thích:
Endpoint:
/users/:id
Phương thức HTTP:
PUT
– Sử dụng để cập nhật dữ liệu của tài nguyên đã tồn tại.Tham số
:id
trong URL là một giá trị động (ví dụ/users/1
), client có thể gửi thông tin cập nhật qua body của request.
e. Tạo endpoint DELETE
để xóa dữ liệu (Delete data):
Ví dụ, tạo endpoint để xóa người dùng theo ID:
Giải thích:
Endpoint:
/users/:id
Phương thức HTTP:
DELETE
– Sử dụng để xóa tài nguyên trên server.Khi client gửi yêu cầu DELETE với một ID cụ thể (ví dụ
/users/1
), server sẽ xóa người dùng đó và phản hồi lại thông báo xác nhận.
Last updated