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