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

LÝ THUYẾT VỀ API

Khái

PHẦN niệm1: "Nhà Hàng"THUYẾT VỀ BồiAPI

Bàn

1.1. API là gì?

Đừng để cái tên dài thòng API (Application Programming Interface - Giao diện lậpLập trình ứngỨng dụng) làm bạn hoang mang. Hãy tưởng tượng bạn đang đi ăn ở một tập hợp nhàquy hàng:

  • Bạn (Client / Ứng dụng điện thoại): Bạn ngồi ở bàn, xem menutắcbiếtgiao mình muốn ăn gì (Bạn cần dữ liệu).
  • Nhà bếp (Server / Database - Cơ sở dữ liệu):thức Nơi chứa nguyên liệu và nấu ra món ăn (Nơi chứa dữ liệu).
  • Người Bồi Bàn (Chính là API): Bạn không thể tự chạy tọt vào bếp để nấu hay lấy đồ ăn. Bạn phải gọi bồi bàn. Bồi bàn sẽ ghi lại yêu cầu của bạn, chạy vào bếp báo lại, chờ bếp làm xong rồi bưng món ăn ra bàn cho bạn.
  • phép
các

=>ứng Tóm lại: API chính là "anh bồi bàn" giúp hai hệ thốngdụng phần mềm (ứngkhác dụngnhau củagiao bạn và máy chủ) nói chuyệntiếp và trao đổi dữ liệu với nhau một cách an toàn.

1. Bốn Hành Động Cơ Bản Của API 

Anh bồi bàn API có 4 phương thức (Method) làm việc tương ứng:

  • GET (Lấy thông tin): Giống lệnh SELECT trong SQL.

    • Ví dụ: Bạn xin bồi bàn cuốn Menu. Bạn chỉ "xem" chứ không thaycần đổibiết chi cả.tiết Lênbên mạng đọc báo, lướt Facebook xem ảnh... tất cả đều đang dùng lệnh GET.

  • POST (Gửi / Thêm mới): Giống lệnh INSERT trong SQL.

    • Ví dụ: Bạn "chốt đơn" và gửi yêu cầu nấu món mới vào bếp. Khi bạn đăng một bức ảnh mới lên mạng hay tạo tài khoản mới, bạn đang dùng POST.

  • PUT / PATCH (Cập nhật / Sửa): Giống lệnh UPDATE trong SQL.

    • Ví dụ: Món ăn đang làm, nhưng bạn gọi bồi bàn lại và bảo: "Cho anh thêm ít ớt vào bát phở nhé". Bạn đang sửa thông tin đã có.

  • DELETE (Xóa): Giống lệnh DELETE trong SQL.

    • Ví dụ: Bạn đổi ý và bảo bồi bàn hủy món đó đi.


2. Định dạng JSON

Người bồi bàn dùng cái khay để bưng đồ ăn. Còn API thì thường dùng một "cái khay" có tên là JSON để bưng dữ liệu.

JSON là một định dạng chữ cực kỳ dễ đọc. Nó luôn đi theo từng cặp "Tên_thuộc_tính": "Giá_trị".trong.

dụ,dụ bồiminh bànhọa APIdễ 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 thôngmón tinăn một(dữ người dùngliệu) ra cho bạn bằng khay JSON sẽ trông như thế này:bạn.

1.2.
Các
JSONloại
API
phổ
{
  "ID_NhanVien": 101,
  "HoTen": "Nguyễn Văn A",
  "VaiTro": "Lập trình viên",
  "DangHoatDong": true
}
biến

Loại APIMô tảVí dụ thực tế
Web APIAPI chạy trên web, dùng HTTPGoogle Maps API, OpenWeather
Library APIThư viện trong codeMath library trong Python
Operating System APIAPI của hệ điều hànhWindows API
Hardware APIGiao tiếp với phần cứngCamera 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. CácRESTful 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ĩaCRUDAn toàn & Idempotent
GETLấy dữ liệuRead
POSTTạo dữ liệu mớiCreateKhông
PUTCập nhật toàn bộUpdate
PATCHCập nhật một phầnUpdateKhông
DELETEXóa dữ liệuDelete

1.5.Trạngtrạng Tháithái HTTP (HTTP Status Code)

Codes)
NhómÝ nghĩaMã phổ biến
2xxThành công200 OK, 201 Created, 204 No Content
3xxChuyển hướng301, 302
4xxLỗi từ phía Client400 Bad Request, 401 Unauthorized, 403 Forbidden, 404 Not Found
5xxLỗi từ phía Server500 Internal Server Error

1.6. Xác thực và Ủy quyền (Authentication & Authorization)

ĐâyCác phương cácpháp phổ biến:

  • API Key (đơn giản)
  • Basic Auth (username + password)
  • Bearer Token / JWT (phổ biến nhất bạnhiện bắtnay)
  • buộc
  • OAuth phải2.0 biết:

    (Google, Facebook login)

1.7. Định dạng dữ liệu

  • 🟢 Mã 200JSON (OK):phổ APIbiến hoạt động tốt và đã trả về dữ liệu.

    nhất)
  • 🟡 Mã 400XML (Bad Request):hơn, LỗiSOAP dodùng bạn gửi sai dữ liệu, sai định dạng.

    nhiều)
  • 🟠 Mã 404Form-data (Notupload Found): Đường dẫn API không tồn tại hoặc dữ liệu bạn tìm đã bị xóa.

  • 🔴 Mã 500 (Internal Server Error): (Máy chủ bị sập hoặc code của lập trình viên bị lỗi.

    file)

1.8.

💡Best MẹoPractices nhớkhi nhanh:thiết >kế * Số bắt đầu bằng 2xx: Thành công.

API

  • Sử

    Sốdụng bắtdanh đầutừ 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 4xx: Lỗi do người dùng (Client).

  • Số bắt đầu bằng 5xx: Lỗi do hệ thống máy chủ (Server).

    Swagger/OpenAPI