Currently Empty: 0.00₫
Bài đọc – Cấu trúc API
Cấu trúc của một API: Request, Response và Authentication
API (Application Programming Interface)
- Theo học thuật: là một giao diện lập trình ứng dụng, cho phép các hệ thống và ứng dụng giao tiếp và trao đổi dữ liệu với nhau.
- Theo cách dễ hiểu: là ngôn ngữ, phương thức giao tiếp giữa client & server
- Cấu trúc của một API được chia thành hai thành phần chính: Request và Response.
1. Request (Yêu cầu)
- Request là thông tin mà client gửi đến server để yêu cầu dữ liệu hoặc thực hiện hành động nào đó. Các thành phần chính trong Request bao gồm:
- URL: Đường dẫn để gọi API
- Method: API có rất nhiều phương thức, nhưng chủ yếu sử dụng 5 loại phương thức chính:
- GET: Dùng để lấy thông tin từ server theo URL đã cung cấp.
- POST: Gửi thông tin tới server thông qua các parameters.
- PUT: Ghi đè tất cả thông tin của đối tượng với những gì được gửi lên.
- PATCH: Ghi đè các thông tin được thay đổi của đối tượng.
- DELETE: Xóa đối tượng trên server.
- Header: Chứa các thông tin cần thiết của một request nhưng end-users không biết có sự tồn tại của nó.
- Body: Chứa thông tin mà client sẽ truyền lên API.
2. Response (Phản hồi)
- Response là thông tin mà server trả về sau khi xử lý yêu cầu từ client. Các thành phần chính trong Response bao gồm:
- Status code: Là mã phản hồi để biết API được gọi thành công hay thất bại. Mã 200/201 thường biểu thị thành công, trong khi mã 400 là lỗi.
- Header: Chứa các thông tin cấu hình và các tham số cần thiết của response.
- Body: Chứa thông tin tài nguyên được trả về từ server. Dữ liệu thường được trả về dưới dạng JSON hoặc XML
- Định dạng dữ liệu JSON: JSON (JavaScript Object Notation) là một định dạng đơn giản để trao đổi dữ liệu, gồm hai thành phần chính: keys và values. Dữ liệu trong JSON sử dụng dấu ngoặc nhọn {} và dấu ngoặc vuông [].
{
"name": "Vincent",
"phone": "0832868822",
"email": "vincent@testek.com"
}
- Định dạng XML: XML (Extensible Markup Language) dùng thẻ để đánh dấu dữ liệu, gồm một cặp thẻ mở và đóng gọi là nodes.
2.0.0 Hóa đơn giá trị gia tăng 1 C23TAI 00000058 2023-05-17 VND
3. Authentication (Xác thực)
Để đảm bảo an toàn và bảo mật khi sử dụng API, các phương thức xác thực phổ biến bao gồm:
- Basic Authentication: Basic Authentication yêu cầu client gửi username và password trong header của request. Tuy nhiên, phương thức này không được khuyến khích vì không an toàn.
- Bearer Authentication: Bearer token là một chuỗi mã hóa cho phép truy cập vào các tài nguyên hoặc URL nhất định. Client phải gửi token này trong header để thực hiện request.
- OAuth2: là một phương thức xác thực giúp các ứng dụng chia sẻ tài nguyên mà không cần chia sẻ username và password. OAuth2 có bốn vai trò chính:
- Resource Server: Máy chủ cung cấp tài nguyên, ví dụ như API.
- Resource Owner: Người sở hữu tài nguyên, cho phép ứng dụng bên thứ 3 truy cập tài khoản của họ.
- Client: Ứng dụng bên thứ 3 yêu cầu quyền truy cập vào tài khoản người dùng.
- Authorization Server: Máy chủ xác thực và cấp token cho client.
- Sơ đồ luồng hoạt động của OAuth2
- Ứng dụng yêu cầu ủy quyền từ người dùng để truy cập vào Resource Server (ví dụ: Gmail, Facebook, Twitter).
- Ứng dụng nhận được ủy quyền từ người dùng dưới dạng một token.
- Ứng dụng gửi thông tin định danh và token tới Authorization Server.
- Authorization Server xác thực và trả về access_token cho ứng dụng.
- Ứng dụng sử dụng access_token để truy cập tài nguyên từ Resource Server.
-
-
- Resource Server: REST API là một ví dụ, một máy chủ HTTP nơi người dùng có thể tạo, sửa đổi hoặc xóa các bản ghi, tài liệu hoặc tệp.
- Resource Owner: Duy trì quyền sở hữu tài nguyên mà người dùng đã tạo hoặc sửa đổi trên máy chủ và người ủy quyền cho ứng dụng bên thứ 3 truy cập vào tài khoản của họ. Ứng dụng của bên thứ 3 có quyền truy cập hạn chế vào tài khoản của người dùng, dựa trên phạm vi của phạm vi của ủy quyền được cấp.
- Client: Ứng dụng bên thứ 3 muốn truy cập vào tài khoản người dùng. Máy chủ resource/authorization và chủ sở hữu tài nguyên phải ủy quyền cho yêu cầu đó. Mọi khách hàng phải được đăng ký với máy chủ authorization và sẽ được cung cấp cho nó thông tin xác thực duy nhất của riêng mình (client_id và client_secret) để xác thực riêng.
- Authorization Server (thường là giống Resource Server): Đôi khi, ta có thể muốn rút ra khỏi máy chủ authorization từ máy chủ resource và triển khai nó như một phiên bản chuyên dụng, đặc biệt là trong các môi trường phân tán.
-