Nhảy đến nội dung chính

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:

  1. Client-Server
  2. Stateless (mỗi request phải chứa đầy đủ thông tin)
  3. Cacheable
  4. Uniform Interface
  5. Layered System
  6. 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
POST Tạo dữ liệu mới Create Không
PUT Cập nhật toàn bộ Update
PATCH Cập nhật một phần Update Không
DELETE Xóa dữ liệu Delete

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