Giới thiệu về API
API (Application Programming Interface) là một công cụ cho phép các chương trình hoặc hệ thống giao tiếp với nhau. Hãy tưởng tượng như một nhà hàng: một khách hàng (client) đặt món ăn với một người phục vụ (API), người này sẽ chuyển đến nhà bếp (server) và trả lại phản hồi (thức ăn). Trong phần mềm, API thực hiện chức năng tương tự bằng cách tạo điều kiện cho các yêu cầu từ hệ thống này sang hệ thống khác.
Các loại API và Chức năng của chúng
API có thể được phân loại dựa trên cách sử dụng hoặc kiến trúc thành các loại sau:
- RESTful API: Sử dụng giao thức HTTP với các phương thức như GET (lấy dữ liệu), POST (gửi dữ liệu), PUT (cập nhật) và DELETE (xóa). Loại này phổ biến trong phát triển web do tính đơn giản và linh hoạt.
- SOAP API: Dựa trên XML để trao đổi dữ liệu và thường được sử dụng trong các hệ thống doanh nghiệp như ngân hàng.
- GraphQL API: Cho phép client yêu cầu chỉ những dữ liệu cụ thể mà họ cần, tránh thông tin không cần thiết.
- WebSocket API: Thích hợp cho giao tiếp hai chiều theo thời gian thực, chẳng hạn như ứng dụng trò chuyện trực tuyến.
- Library-based API: Ví dụ bao gồm API nội bộ của các ngôn ngữ lập trình, như DOM API của JavaScript.
Mỗi API sử dụng các định dạng cụ thể để chuyển giao dữ liệu. Hai định dạng phổ biến là JSON và XML, với JSON được sử dụng rộng rãi nhờ cấu trúc đơn giản của nó.
Các định dạng trao đổi dữ liệu: Cái nhìn về JSON
Khi một hệ thống gửi yêu cầu đến API, dữ liệu phải được định dạng theo cách tiêu chuẩn. Một số định dạng phổ biến bao gồm:
- JSON (JavaScript Object Notation): Nhẹ và dễ đọc, được sử dụng trong nhiều dự án.
- XML (eXtensible Markup Language): Có cấu trúc hơn nhưng nặng nề hơn, phổ biến trong các hệ thống cũ.
- Các định dạng khác: Như YAML hoặc Protocol Buffers, áp dụng trong những trường hợp cụ thể.
JSON là gì?
JSON (JavaScript Object Notation) là một định dạng để trao đổi dữ liệu giữa các hệ thống. Nó sử dụng các cặp khóa-giá trị và mảng đơn giản, và được công nhận vì tính đơn giản và khả năng đọc hiểu của nó.
Đặc điểm của JSON
JSON có các đặc điểm giúp nó phù hợp cho việc trao đổi dữ liệu:
- Tính dễ đọc cao: Cấu trúc của nó cho phép người dùng hiểu nội dung ngay lập tức. Ví dụ:
json
{
"first_name": "Amir",
"age": 25,
"is_student": true,
"hobbies": ["coding", "reading"],
"address": {
"city": "Tehran",
"country": "Iran"
}
}
Trong cấu trúc này, các khóa (như "first_name") luôn là chuỗi, và giá trị có thể ở nhiều dạng khác nhau.
- Các kiểu dữ liệu được hỗ trợ: JSON hỗ trợ các kiểu sau:
- String: Như "Amir"
- Number: Bao gồm số nguyên hoặc số thập phân (ví dụ: 25 hoặc 3.14)
- Boolean: true hoặc false
- Array: Danh sách có thứ tự như ["coding", "reading"]
- Object: Một tập hợp các cặp khóa-giá trị như { "city": "Tehran" }
- Null: Để chỉ định giá trị trống
Lưu ý: JSON không có kiểu dữ liệu dành riêng cho ngày tháng; ngày thường được lưu trữ dưới dạng chuỗi (ví dụ: "2025-09-09").
- Kích thước gọn nhẹ: JSON không có các thẻ bổ sung như trong XML, dẫn đến kích thước dữ liệu nhỏ hơn, điều này có thể có lợi cho việc truyền tải dữ liệu.
Lưu ý về cú pháp JSON
- Các khóa luôn phải là chuỗi được đặt trong dấu ngoặc kép (").
- Các giá trị có thể không cần dấu ngoặc (ví dụ: số hoặc true).
- Dấu phẩy (,) là bắt buộc sau mỗi cặp khóa-giá trị ngoại trừ cặp cuối cùng. Ví dụ:
json
{
"name": "Amir",
"age": 25
}
Thêm một dấu phẩy sau "age": 25 sẽ gây ra lỗi, vì JSON mong đợi một cặp khóa-giá trị khác.
JSON trong thực hành
Để minh họa, hãy tưởng tượng gửi dữ liệu người dùng đến một hệ thống giáo dục. Một yêu cầu có thể trông như sau:
POST /api/users HTTP/1.1
Host: example.com
Content-Type: application/json
{
"user_name": "amir123",
"email": "amir@example.com",
"age": 25,
"mobile": "+989123456789"
}
Phản hồi của hệ thống có thể là:
{
"status": "success",
"user_id": 1234,
"message": "User created successfully"
}
So sánh với XML
Cả JSON và XML đều được sử dụng để trao đổi dữ liệu, nhưng chúng khác nhau:
- JSON: Nhẹ hơn và đơn giản hơn, phù hợp cho phát triển web.
- XML: Cấu trúc hơn nhưng nặng nề hơn do có thêm thẻ. Ví dụ:
<user>
<first_name>Amir</first_name>
<age>25</age>
</user>
XML vẫn được sử dụng trong một số hệ thống cũ.
Hạn chế của JSON
Mặc dù JSON có nhiều ưu điểm, nó cũng có một số hạn chế:
- Không hỗ trợ chú thích.
- Thiếu kiểu dữ liệu cho ngày tháng hoặc thời gian.
- Nhạy cảm với lỗi cú pháp, chẳng hạn như dấu phẩy thừa.
Kết luận
API là công cụ cho việc giao tiếp giữa các hệ thống, và JSON phục vụ như một trong những định dạng cho việc trao đổi dữ liệu, nổi bật với cấu trúc đơn giản và dễ đọc. Tuy nhiên, tùy thuộc vào nhu cầu của dự án, các định dạng khác như XML hoặc YAML cũng có thể được sử dụng. Để biết thêm chi tiết, hãy khám phá tài liệu kỹ thuật liên quan đến API.