api-la-gi

API là gì? Cách hoạt động, các loại API và ví dụ

XEM NHANH

API (Application Programming Interface – giao diện lập trình ứng dụng) là tập hợp các quy tắc và giao thức cho phép hai phần mềm khác nhau giao tiếp, gửi yêu cầu và trao đổi dữ liệu với nhau. Nói ngắn gọn, API là “cầu nối” giúp một ứng dụng sử dụng được tính năng hoặc dữ liệu của ứng dụng khác mà không cần biết hệ thống đó vận hành bên trong ra sao. Mỗi lần bạn đăng nhập bằng tài khoản Google, xem bản đồ nhúng trong một app đặt xe hay thanh toán trực tuyến, phía sau đều có API đang làm việc. Dưới đây là cách API hoạt động, các thành phần chính, những loại API phổ biến và ví dụ dễ hình dung.

API là gì?

API là viết tắt của Application Programming Interface, dịch sang tiếng Việt là giao diện lập trình ứng dụng. Đây là bộ quy tắc quy định một ứng dụng được phép hỏi gì, hỏi theo định dạng nào, và sẽ nhận lại dữ liệu ra sao từ một ứng dụng hoặc dịch vụ khác.

Có hai cách ví von giúp bạn hình dung nhanh:

  • Người phục vụ trong nhà hàng: bạn (ứng dụng) không tự vào bếp nấu ăn. Bạn gọi món qua người phục vụ (API), họ chuyển yêu cầu xuống bếp (máy chủ), rồi mang món ăn (dữ liệu) ra cho bạn. Bạn không cần biết bếp có bao nhiêu đầu bếp hay công thức nấu thế nào.
  • Ổ cắm điện: mọi thiết bị chỉ cần đúng chuẩn phích cắm là dùng được điện, không cần hiểu nhà máy điện vận hành ra sao. API cũng là một “chuẩn cắm” như vậy giữa các phần mềm.

Điểm mấu chốt: API che giấu phần phức tạp bên trong và chỉ mở ra đúng những gì cần thiết. Nhờ vậy, nhà phát triển có thể tái sử dụng tính năng của bên khác thay vì xây lại từ đầu.

api-la-gi-1

API hoạt động như thế nào?

API phổ biến nhất hiện nay hoạt động theo mô hình request – response (yêu cầu – phản hồi). Quy trình gồm bốn bước:

  • Bước 1: Ứng dụng (client) gửi một yêu cầu (request) tới địa chỉ API, kèm thông tin cần thiết.
  • Bước 2: Máy chủ nhận yêu cầu, kiểm tra quyền truy cập và tính hợp lệ của dữ liệu gửi lên.
  • Bước 3: Máy chủ xử lý, truy vấn cơ sở dữ liệu hoặc tính toán để lấy kết quả.
  • Bước 4: Máy chủ trả về phản hồi (response), thường ở định dạng JSON, kèm một mã trạng thái cho biết yêu cầu thành công hay thất bại.

Toàn bộ quá trình này thường diễn ra trong vài trăm mili giây và người dùng cuối gần như không nhận ra.

Các thành phần của một lời gọi API

  • Endpoint (điểm cuối): đường dẫn cụ thể để gọi tới một chức năng, ví dụ dạng /api/v1/products. Mỗi endpoint tương ứng với một loại dữ liệu hoặc hành động.
  • Method (phương thức): cho biết bạn muốn làm gì với dữ liệu. Bốn phương thức thông dụng là GET (lấy dữ liệu), POST (tạo mới), PUT (cập nhật toàn bộ) và DELETE (xóa). Ngoài ra còn có PATCH dùng để cập nhật một phần.
  • Header (phần đầu): chứa thông tin đi kèm như định dạng dữ liệu, ngôn ngữ, và đặc biệt là thông tin xác thực như API key hoặc token.
  • Body (phần thân): dữ liệu bạn gửi lên máy chủ, thường dùng với POST và PUT. Ví dụ khi tạo tài khoản, body chứa tên đăng nhập và mật khẩu.
  • Status code (mã trạng thái): con số ba chữ số máy chủ trả về để báo kết quả xử lý.

Các mã trạng thái thường gặp

Ý nghĩa Tình huống thường gặp
200 OK – yêu cầu thành công Máy chủ đã trả về dữ liệu như mong đợi
400 Bad Request – yêu cầu sai Thiếu tham số hoặc dữ liệu gửi lên sai định dạng
401 Unauthorized – chưa xác thực Thiếu API key, token sai hoặc đã hết hạn
404 Not Found – không tìm thấy Gọi sai endpoint hoặc dữ liệu không tồn tại
500 Internal Server Error – lỗi máy chủ Sự cố phía nhà cung cấp API, không phải lỗi của bạn

Việc đọc hiểu mã trạng thái giúp xác định nhanh lỗi nằm ở phía người gọi hay phía máy chủ. Các mã này thuộc chuẩn của giao thức HTTP dùng để truyền dữ liệu trên web, nên bạn sẽ gặp lại chúng trong rất nhiều tình huống khác.

Phân loại API theo phạm vi sử dụng

  • Public API (API công khai, còn gọi là Open API): ai cũng có thể đăng ký sử dụng, thường chỉ cần tạo tài khoản để lấy API key. Ví dụ: API bản đồ, API thời tiết, API dịch thuật.
  • Partner API (API đối tác): chỉ mở cho những đối tác đã ký kết hợp tác. Ví dụ: một sàn thương mại điện tử mở API tồn kho cho các nhà bán hàng lớn.
  • Private API (API nội bộ): chỉ dùng bên trong một tổ chức, không công bố ra ngoài. Đây là cách các bộ phận khác nhau của cùng một hệ thống trao đổi dữ liệu với nhau.

Phân loại API theo kiến trúc

Cách phân loại thứ hai dựa trên cấu trúc kỹ thuật. Ba kiến trúc phổ biến nhất hiện nay là REST, SOAP và GraphQL.

Tiêu chí REST SOAP GraphQL
Bản chất Kiểu kiến trúc dựa trên HTTP Giao thức có chuẩn nghiêm ngặt Ngôn ngữ truy vấn dữ liệu
Định dạng dữ liệu Chủ yếu JSON, có thể XML Bắt buộc XML JSON
Cách lấy dữ liệu Nhiều endpoint, mỗi endpoint một tài nguyên Gọi thao tác được định nghĩa sẵn Một endpoint duy nhất, client tự chọn trường cần lấy
Ưu điểm Đơn giản, nhẹ, dễ học, phổ biến nhất Chặt chẽ, hỗ trợ giao dịch và bảo mật cấp doanh nghiệp Tránh lấy thừa hoặc thiếu dữ liệu, giảm số lần gọi
Nhược điểm Dễ phải gọi nhiều lần để ghép đủ dữ liệu Nặng, cấu hình phức tạp Truy vấn phức tạp có thể gây tải nặng cho máy chủ
Thường dùng cho Web, ứng dụng di động, dịch vụ công khai Ngân hàng, bảo hiểm, hệ thống cũ của doanh nghiệp Ứng dụng có giao diện nhiều thành phần dữ liệu

Ngoài ba kiến trúc trên còn có WebSocket API. Khác với REST vốn chỉ trả lời khi được hỏi, WebSocket giữ một kết nối mở hai chiều giữa client và máy chủ, cho phép máy chủ chủ động đẩy dữ liệu về. Đây là lý do ứng dụng chat, bảng giá thay đổi liên tục hay thông báo thời gian thực thường dùng WebSocket thay vì REST.

Ví dụ thực tế về API

  • Đăng nhập bằng Google hoặc Facebook: ứng dụng gọi API xác thực của Google, nhận về thông tin cơ bản của tài khoản mà không bao giờ nhìn thấy mật khẩu của bạn.
  • Bản đồ trong ứng dụng đặt xe, giao đồ ăn: phần bản đồ và chỉ đường được lấy qua API bản đồ, thay vì công ty tự vẽ lại bản đồ toàn quốc.
  • Cổng thanh toán trực tuyến: khi bạn bấm thanh toán, website gửi yêu cầu qua API của cổng thanh toán, cổng này xử lý với ngân hàng rồi trả kết quả thành công hay thất bại.
  • Dự báo thời tiết: widget thời tiết trên điện thoại lấy số liệu qua API của đơn vị cung cấp dữ liệu khí tượng và cập nhật định kỳ.
  • Đăng nhập một lần dùng nhiều dịch vụ: các hệ sinh thái phần mềm dùng API nội bộ để chia sẻ trạng thái đăng nhập giữa những sản phẩm khác nhau.

api-la-gi-2

API key và vấn đề bảo mật

API key là một chuỗi ký tự do nhà cung cấp cấp cho bạn, đóng vai trò như “thẻ ra vào” để máy chủ biết ai đang gọi. Khi gửi request, API key thường được đặt trong header. Nếu thiếu hoặc sai, máy chủ trả về mã 401.

Một số nguyên tắc bảo mật cơ bản khi làm việc với API:

  • Không để lộ API key: tuyệt đối không đưa key vào mã nguồn công khai hoặc gửi qua kênh không an toàn. Key bị lộ có thể bị người khác dùng và bạn vẫn phải chịu chi phí.
  • Luôn dùng HTTPS: dữ liệu được mã hóa trên đường truyền, tránh bị đọc trộm.
  • Phân quyền tối thiểu: mỗi key chỉ nên được cấp đúng quyền cần dùng, không cấp quyền quản trị nếu chỉ cần đọc dữ liệu.
  • Giới hạn tần suất gọi (rate limit): nhà cung cấp giới hạn số lượt gọi trong một khoảng thời gian để chống lạm dụng và quá tải.
  • Thu hồi và xoay vòng key định kỳ: tạo key mới, hủy key cũ khi nghi ngờ bị lộ hoặc khi nhân sự thay đổi.

Với các hệ thống lớn hơn, API key thường được thay bằng token có thời hạn theo chuẩn OAuth, giúp giới hạn thiệt hại nếu token bị lộ.

Lợi ích của API

API mang lại lợi ích cho cả người dùng lẫn đơn vị phát triển phần mềm:

  • Tiết kiệm thời gian và chi phí: tái sử dụng dịch vụ có sẵn thay vì tự xây từ đầu.
  • Kết nối các hệ thống khác nhau: hai phần mềm viết bằng ngôn ngữ khác nhau, chạy trên hạ tầng khác nhau vẫn nói chuyện được với nhau.
  • Kiểm soát dữ liệu tốt hơn: chỉ mở đúng phần dữ liệu cần chia sẻ, phần còn lại vẫn được bảo vệ.
  • Dễ mở rộng: khi cần thêm tính năng, đơn vị phát triển bổ sung endpoint mới mà không phải viết lại toàn bộ hệ thống.

Có thể hình dung vai trò của API trong thế giới phần mềm tương tự vai trò của các cổng kết nối chuẩn trong phần cứng máy tính: nhờ có chuẩn chung, các thành phần từ nhiều nhà sản xuất khác nhau vẫn lắp ghép và làm việc cùng nhau được.

api-la-gi-4

Câu hỏi thường gặp về API

API là gì?

API là giao diện lập trình ứng dụng, gồm tập hợp quy tắc cho phép hai phần mềm giao tiếp và trao đổi dữ liệu với nhau mà không cần biết chi tiết vận hành bên trong của nhau.

API hoạt động theo nguyên tắc nào?

API hoạt động theo mô hình request – response: ứng dụng gửi yêu cầu tới một endpoint kèm method, header và body; máy chủ xử lý rồi trả về phản hồi chứa dữ liệu và mã trạng thái.

REST API khác SOAP API ở điểm nào?

REST là kiểu kiến trúc dựa trên HTTP, dữ liệu chủ yếu ở dạng JSON, nhẹ và dễ dùng. SOAP là giao thức chặt chẽ hơn, bắt buộc dùng XML, nặng hơn nhưng phù hợp với hệ thống doanh nghiệp yêu cầu bảo mật và tính toàn vẹn giao dịch cao.

API key dùng để làm gì?

API key là chuỗi ký tự dùng để xác thực, giúp máy chủ nhận biết ai đang gọi API, kiểm soát quyền truy cập và giới hạn số lượt gọi. Nếu thiếu hoặc sai key, máy chủ thường trả về mã 401.

Lỗi 401 và 404 khi gọi API nghĩa là gì?

Mã 401 nghĩa là chưa xác thực, thường do thiếu key hoặc token đã hết hạn. Mã 404 nghĩa là không tìm thấy, thường do gọi sai đường dẫn endpoint hoặc dữ liệu yêu cầu không tồn tại.

Người không phải lập trình viên có cần hiểu API không?

Không bắt buộc, nhưng hiểu khái niệm cơ bản sẽ giúp bạn nắm được vì sao các ứng dụng có thể liên kết dữ liệu với nhau, và thận trọng hơn khi cấp quyền truy cập tài khoản cho một ứng dụng bên thứ ba.

Kết luận

Tóm lại, API là giao diện lập trình ứng dụng đóng vai trò cầu nối, giúp các phần mềm gửi yêu cầu và nhận dữ liệu của nhau theo mô hình request – response. Nắm được các thành phần cơ bản như endpoint, method, header, body và mã trạng thái sẽ giúp bạn hiểu cách những ứng dụng quen thuộc hằng ngày kết nối với nhau, đồng thời biết cách bảo vệ API key khi tự mình sử dụng một dịch vụ nào đó.

Xem thêm:

Tin mới nhất
nhip-tim-binh-thuong
Nhịp tim bình thường là bao nhiêu? Chỉ số theo độ tuổi
cholesterol-la-gi
Cholesterol là gì? Các loại LDL, HDL và ảnh hưởng sức khỏe
phan-ung-phan-huy
Phản ứng phân hủy là gì? Ví dụ và phân biệt phản ứng hóa hợp
luc-dan-hoi
Lực đàn hồi là gì? Định luật Húc và bài tập