API Là Gì? Hướng Dẫn Bằng Ngôn Ngữ Đời Thường Cho Người Xây Dựng App
API (giao diện lập trình ứng dụng) là một cách được định nghĩa rõ ràng để một phần mềm yêu cầu phần mềm khác cung cấp dữ liệu hoặc khiến nó thực hiện một việc gì đó. App của bạn gửi yêu cầu theo một định dạng đã thống nhất — “cho tôi danh sách đặt lịch ngày mai”, “thu 20 € từ thẻ này”, “tóm tắt đoạn văn này” — và hệ thống kia gửi lại một phản hồi có cấu trúc. API là cách các phần của một app giao tiếp với nhau, và là cách app của bạn sử dụng các dịch vụ bên ngoài như thanh toán, email, bản đồ và AI.
Vì sao API quan trọng khi bạn xây dựng bằng AI
Gần như mọi app hữu ích đều được tạo từ các phần giao tiếp qua API:
- Bên trong app của bạn, các màn hình trên trình duyệt gọi API của backend để tải và lưu dữ liệu.
- Bên ngoài app của bạn, backend gọi API của các công ty khác: Stripe để nhận thanh toán, nhà cung cấp email để gửi biên nhận, nhà cung cấp mô hình AI để tạo văn bản.
Khi bạn nhờ AI builder “nhận thanh toán” hoặc “thêm phần tóm tắt bằng AI”, thực chất nó đang viết mã để gọi một API. Hiểu những điều cơ bản giúp bạn biết AI cần gì từ bạn (thường là một tài khoản với dịch vụ đó và một khóa API), những chỗ có thể xảy ra sự cố, và chi phí sẽ là bao nhiêu.
Một ví dụ đời thường
Hãy nghĩ đến một nhà hàng. Bạn không tự bước vào bếp để nấu. Bạn đọc thực đơn, nói với bồi bàn món bạn muốn theo cách bếp hiểu được, và bồi bàn mang món ăn về — hoặc báo rằng món đó đã hết.
- Thực đơn là tài liệu API: danh sách những gì bạn có thể yêu cầu và cách yêu cầu.
- Bồi bàn là API: cách thống nhất duy nhất để yêu cầu đi vào và phản hồi đi ra.
- Nhà bếp là hệ thống kia: bạn không cần biết nó hoạt động bên trong thế nào.
- Món bạn gọi là yêu cầu; đĩa thức ăn là phản hồi.
Nhà bếp có thể đổi lò nướng và nhân sự mà không ảnh hưởng đến bạn, miễn là thực đơn không đổi. Đó là giá trị thực sự của API: nó cho phép hai hệ thống làm việc cùng nhau mà không cần một bên biết bên kia được xây dựng ra sao.
Một yêu cầu API trên web hoạt động như thế nào
Hầu hết API bạn gặp là web API hoạt động qua HTTP, cùng giao thức mà trình duyệt của bạn dùng. Mỗi yêu cầu có vài phần:
| Phần | Là gì | Ví dụ |
|---|---|---|
| Method (phương thức) | Loại hành động | GET (đọc), POST (tạo) |
| URL / endpoint | Địa chỉ của đối tượng bạn tác động đến | https://api.example.com/bookings |
| Headers (tiêu đề) | Thông tin bổ sung, bao gồm bạn là ai | Authorization: Bearer <khóa của bạn> |
| Body (nội dung) | Dữ liệu bạn gửi đi, dùng khi tạo hoặc cập nhật | {"name": "Lena", "time": "14:00"} |
Và mỗi phản hồi có:
| Phần | Là gì | Ví dụ |
|---|---|---|
| Status code (mã trạng thái) | Một con số cho biết kết quả | 200 OK, 201 Created, 404 Not Found |
| Body (nội dung) | Dữ liệu trả về, thường là JSON | {"id": 5001, "status": "confirmed"} |
JSON (JavaScript Object Notation) là một định dạng văn bản đơn giản gồm các tên và giá trị đặt trong dấu ngoặc nhọn. Đây là cách tiêu chuẩn để các web API trao đổi dữ liệu.
REST: kiểu phổ biến nhất
REST là một quy ước được dùng rộng rãi để thiết kế web API. Mỗi loại đối tượng có URL riêng, và các phương thức chuẩn cho biết bạn đang làm gì với nó. Đây là một REST API cho app đặt lịch có thể trông như sau:
| Phương thức | Endpoint | Chức năng |
|---|---|---|
GET | /api/bookings | Liệt kê các lịch đặt |
GET | /api/bookings/5001 | Lấy một lịch đặt |
POST | /api/bookings | Tạo lịch đặt mới |
PATCH | /api/bookings/5001 | Thay đổi một phần của lịch đặt, chẳng hạn giờ hẹn |
DELETE | /api/bookings/5001 | Hủy (xóa) lịch đặt |
PUT cũng tồn tại và theo quy ước sẽ thay thế toàn bộ một bản ghi, trong khi PATCH chỉ thay đổi các trường bạn gửi lên.
Các mã trạng thái bạn sẽ gặp thường xuyên nhất:
| Mã | Ý nghĩa |
|---|---|
200 / 201 | Thành công / đã tạo |
400 | Yêu cầu sai — có gì đó trong dữ liệu bạn gửi bị sai hoặc thiếu |
401 | Chưa xác thực — không có đăng nhập hoặc khóa hợp lệ |
403 | Bị cấm — hệ thống nhận ra bạn, nhưng bạn không được phép làm việc này |
404 | Không tìm thấy |
429 | Quá nhiều yêu cầu — bạn đã chạm giới hạn tần suất |
500 | Máy chủ gặp lỗi |
Khi app của bạn bị hỏng, mã trạng thái thường là manh mối nhanh nhất. Mã 401 từ nhà cung cấp thanh toán thường có nghĩa là khóa API bị thiếu hoặc sai; mã 429 nghĩa là bạn đang gọi quá thường xuyên.
REST không phải là kiểu duy nhất — còn có GraphQL và các API kiểu RPC — nhưng REST là thứ mà hầu hết các dịch vụ và backend do AI xây dựng đều dùng.
Ví dụ minh họa: xác nhận đặt lịch
Khi một khách hàng đặt lịch cắt tóc trong app tiệm làm tóc, một số lệnh gọi API có thể xảy ra trong một hoặc hai giây:
- Trang đặt lịch trên trình duyệt gửi
POST /api/bookingskèm dịch vụ, giờ và thông tin khách hàng đến backend của bạn. - Backend của bạn kiểm tra khung giờ còn trống, lưu lịch đặt vào cơ sở dữ liệu, và trả về
201 Created. - Backend của bạn gọi API của nhà cung cấp email bằng khóa bí mật: “gửi xác nhận này đến lena@example.com.”
- Nếu có đặt cọc, backend của bạn yêu cầu API của nhà cung cấp thanh toán tạo phiên checkout và chuyển khách đến đó.
- Sau đó, nhà cung cấp thanh toán gọi đến app của bạn để báo khoản thanh toán đã thành công. Lệnh gọi ngược này là một webhook.
Hai bước đầu là API của chính bạn giữa frontend và backend. Các bước 3–5 là API của bên thứ ba.
Giải thích các thuật ngữ thường gặp
| Thuật ngữ | Nghĩa |
|---|---|
| Endpoint | Một URL cụ thể mà API phản hồi. |
| Khóa API (API key) | Một chuỗi bí mật nhận diện app của bạn với một dịch vụ. Hãy coi nó như mật khẩu. |
| Xác thực (Authentication) | Chứng minh ai đang gọi — bằng khóa, token hoặc đăng nhập. Xem xác thực là gì. |
| Giới hạn tần suất (Rate limit) | Mức trần số yêu cầu bạn có thể gửi trong một khoảng thời gian. |
| SDK | Thư viện mã làm sẵn giúp việc gọi một API cụ thể dễ dàng hơn. |
| Tài liệu (Documentation) | “Thực đơn”: các endpoint nào tồn tại, chúng nhận và trả về gì. |
| Sandbox / chế độ test | Phiên bản của một dịch vụ để thử nghiệm mà không dùng tiền thật hay dữ liệu thật. |
| Webhook | Lệnh gọi từ một dịch vụ khác vào app của bạn khi có điều gì đó xảy ra. |
Các lỗi thường gặp và những hiểu lầm
- Đặt khóa bí mật ở frontend. Bất cứ thứ gì trong mã chạy trên trình duyệt đều có thể bị bất kỳ ai truy cập xem được. Khóa bí mật phải ở trên máy chủ, trong biến môi trường hoặc secret.
- Dán khóa vào chat. Lịch sử chat có thể được lưu lại. Hãy dùng tính năng secret của công cụ xây dựng, và thay khóa mới cho mọi khóa đã bị lộ.
- Cho rằng API là miễn phí. Nhiều API tính phí theo mỗi yêu cầu hoặc theo mức sử dụng — API mô hình AI tính theo token. Hãy kiểm tra bảng giá và đặt giới hạn chi tiêu. Xem cách dùng API LLM.
- Không xử lý lỗi. Dịch vụ bên ngoài có thể ngừng hoạt động, hết thời gian chờ và chạm giới hạn. Hãy yêu cầu thông báo lỗi hợp lý và cơ chế thử lại.
- Tin tưởng trình duyệt. API của chính bạn phải tự kiểm tra quyền truy cập. Ẩn một nút không ngăn được ai đó gọi trực tiếp endpoint.
- Dùng khóa thật khi đang thử nghiệm. Hãy dùng khóa chế độ test cho đến khi bạn sẵn sàng ra mắt.
Nên nhờ AI builder của bạn làm gì
- “App này dùng những API bên ngoài nào, và mỗi cái tốn bao nhiêu?”
- “Chỉ gọi API thanh toán từ máy chủ. Đọc khóa từ một biến môi trường.”
- “Liệt kê mọi endpoint trong API của chúng ta, chức năng của từng cái và ai được phép gọi.”
- “Kiểm tra trên máy chủ rằng người dùng đang đăng nhập sở hữu lịch đặt trước khi cập nhật hoặc xóa.”
- “Nếu API email bị lỗi, vẫn lưu lịch đặt và ghi lại lỗi.”
- “Hiện tại hãy dùng chế độ test của nhà cung cấp.”
API trong Mythex
Mythex có thể xây dựng API riêng của bạn — như một phần của web app, hoặc như một backend riêng viết bằng Node, Python (FastAPI), C# hay Java chạy song song với frontend — và viết mã gọi các dịch vụ bên ngoài. Bạn thêm khóa của họ làm secret của dự án thay vì đưa vào chat, và app của bạn có thể dùng chúng trong bản xem trước cũng như sau khi xuất bản. Tài liệu có công thức cho tích hợp bất kỳ API nào và xây dựng backend REST API.
Câu hỏi thường gặp
API là gì, nói đơn giản?
API (giao diện lập trình ứng dụng) là một cách được định nghĩa rõ ràng để một phần mềm yêu cầu phần mềm khác cung cấp dữ liệu hoặc thực hiện một việc gì đó. App của bạn gửi yêu cầu theo một định dạng đã thống nhất, và hệ thống kia gửi lại phản hồi — chẳng hạn dữ liệu thời tiết, kết quả thanh toán hoặc một câu trả lời do AI tạo ra.
REST API là gì?
REST API là một kiểu web API phổ biến, trong đó mỗi loại đối tượng (đặt lịch, khách hàng) có một URL, và bạn dùng các phương thức HTTP tiêu chuẩn — GET để đọc, POST để tạo, PUT hoặc PATCH để cập nhật, DELETE để xóa. Dữ liệu thường được trả về dưới dạng JSON.
Khóa API là gì và tôi nên giữ nó ở đâu?
Khóa API là một chuỗi bí mật giúp dịch vụ nhận diện app của bạn, và thường cho phép app chi tiền hoặc truy cập dữ liệu. Hãy giữ nó trong biến môi trường hoặc phần secret của dự án trên máy chủ, không bao giờ đặt trong mã chạy trên trình duyệt hay trong kho mã công khai.
Sự khác nhau giữa API và webhook là gì?
Với API, app của bạn hỏi một dịch vụ khác khi nó cần điều gì đó. Với webhook, dịch vụ khác gọi đến app của bạn khi có điều gì đó xảy ra — ví dụ, nhà cung cấp thanh toán thông báo cho bạn rằng một khoản thanh toán đã thành công.