LÝ THUYẾT VỀ API
PHẦN 1: LÝ THUYẾT VỀ API
1.1. API là gì?
API (Application Programming Interface – Giao diện Lập trình Ứng dụng) là một tập hợp quy tắc và giao thức cho phép các ứng dụng phần mềm khác nhau giao tiếp và trao đổi dữ liệu với nhau mà không cần biết chi tiết bên trong.
Ví dụ minh họa dễ hiểu: Khi bạn gọi món ăn ở nhà hàng, bạn không vào bếp tự nấu mà chỉ nói với người phục vụ (API). Người phục vụ sẽ truyền yêu cầu đến bếp (server) và mang món ăn (dữ liệu) ra cho bạn.
1.2. Các loại API phổ biến
| Loại API | Mô tả | Ví dụ thực tế |
|---|---|---|
| Web API | API chạy trên web, dùng HTTP | Google Maps API, OpenWeather |
| Library API | Thư viện trong code | Math library trong Python |
| Operating System API | API của hệ điều hành | Windows API |
| Hardware API | Giao tiếp với phần cứng | Camera API trên điện thoại |
Trong phát triển web hiện nay, chúng ta chủ yếu làm việc với Web API, đặc biệt là RESTful API.
1.3. RESTful API là gì?
REST (Representational State Transfer) là một kiến trúc phần mềm được Roy Fielding đề xuất năm 2000. RESTful API là API tuân thủ 6 nguyên tắc chính của REST:
- Client-Server
- Stateless (mỗi request phải chứa đầy đủ thông tin)
- Cacheable
- Uniform Interface
- Layered System
- Code on Demand (tùy chọn)
1.4. Phương thức HTTP (HTTP Methods) trong API
| Phương thức | Ý nghĩa | CRUD | An toàn & Idempotent |
|---|---|---|---|
| GET | Lấy dữ liệu | Read | Có |
| POST | Tạo dữ liệu mới | Create | Không |
| PUT | Cập nhật toàn bộ | Update | Có |
| PATCH | Cập nhật một phần | Update | Không |
| DELETE | Xóa dữ liệu | Delete | Có |
1.5. Mã trạng thái HTTP (HTTP Status Codes)
| Nhóm | Ý nghĩa | Mã phổ biến |
|---|---|---|
| 2xx | Thành công | 200 OK, 201 Created, 204 No Content |
| 3xx | Chuyển hướng | 301, 302 |
| 4xx | Lỗi từ phía Client | 400 Bad Request, 401 Unauthorized, 403 Forbidden, 404 Not Found |
| 5xx | Lỗi từ phía Server | 500 Internal Server Error |
1.6. Xác thực và Ủy quyền (Authentication & Authorization)
Các phương pháp phổ biến:
- API Key (đơn giản)
- Basic Auth (username + password)
- Bearer Token / JWT (phổ biến nhất hiện nay)
- OAuth 2.0 (Google, Facebook login)
1.7. Định dạng dữ liệu
- JSON (phổ biến nhất)
- XML (cũ hơn, SOAP dùng nhiều)
- Form-data (upload file)
1.8. Best Practices khi thiết kế API
- Sử dụng danh từ cho resource (ví dụ: /users, /posts)
- Phiên bản API (/v1/users)
- Pagination, Filtering, Sorting
- Rate Limiting
- Hỗ trợ CORS
- Document API bằng Swagger/OpenAPI
Không có bình luận nào để hiển thị
Không có bình luận nào để hiển thị