Bạn đặt mua trà sữa qua app. Sẽ không thể có việc quán trà sữa "hì hục" mang ly trà sữa tới tận nơi giao cho khách hàng. Quán làm xong gọi shipper đến nhận và giao tận tay cho bạn. Shipper là trung gian giữa quán trà sữa và bạn. Mọi thứ được phân công rõ ràng.
Có một câu hỏi.
Mà người mới học lập trình hỏi rất nhiều.
"API là gì?"
Google trả lời.
"Application Programming Interface."
...
Đọc xong.
"Ủa... vậy API là gì? Trả lời vậy thì cũng...như không"
Đừng lo.
Hôm nay.
Chúng ta sẽ quên hết những định nghĩa hàn lâm, bài bản...mệt cho cái óc lắm!
Chỉ cần nhớ...
API giống như gọi đồ ăn.
API là gì?
API (Application Programming Interface) là cầu nối giúp hai chương trình có thể giao tiếp và trao đổi dữ liệu với nhau.
Thay vì truy cập trực tiếp vào hệ thống của chương trình khác, ứng dụng sẽ gửi một yêu cầu (Request) đến API và nhận lại dữ liệu (Response).
API được sử dụng trong hầu hết các website và ứng dụng hiện đại như Facebook, Google Maps, Shopee, ChatGPT, ngân hàng và thanh toán trực tuyến.
Ví dụ thực tế
Bạn đi vào một quán hamburger.
Bạn muốn ăn.
Nhưng.
Bạn không chạy thẳng vào bếp.
Đúng không?
Bạn sẽ gọi:
Nhân viên phục vụ.
↓
Nhân viên mang yêu cầu vào bếp.
↓
Đầu bếp làm bánh.
↓
Nhân viên mang bánh ra.
↓
Bạn nhận được hamburger.
API cũng hoạt động gần như vậy.
Ai là ai?
Trong ví dụ trên.
Bạn
↓
Là:
Client.
Nhân viên phục vụ
↓
Là:
API.
Nhà bếp
↓
Là:
Server.
Hamburger
↓
Là:
Dữ liệu.
Nếu không có API?
Hãy tưởng tượng.
Bạn muốn ăn hamburger.
Bạn phải.
- Đi vào bếp.
- Tự mở tủ lạnh.
- Tự lấy thịt.
- Tự lấy bánh.
- Tự nấu.
Rất hỗn loạn.
Website cũng vậy.
Nếu không có API.
Mọi chương trình đều phải truy cập trực tiếp vào dữ liệu của nhau.
Điều này rất nguy hiểm.
API giúp điều gì?
API giống như một lễ tân.
Bạn chỉ cần nói.
"Tôi muốn cái này."
API sẽ biết.
- Nên hỏi ai.
- Lấy dữ liệu ở đâu.
- Trả kết quả thế nào.
Bạn không cần biết.
Database ở đâu.
Server dùng ngôn ngữ gì.
Hay dữ liệu được lưu thế nào.
Ví dụ với thời tiết
Bạn mở ứng dụng thời tiết.
Nó biết hôm nay:
- 28°C.
- Có mưa.
- Gió nhẹ.
Ứng dụng đó.
Không tự đo thời tiết.
Nó gọi:
Weather API.
↓
API trả về dữ liệu.
↓
Ứng dụng hiển thị cho bạn.
Ví dụ với Google Maps
Website bán hàng.
Muốn hiển thị bản đồ.
Không ai tự vẽ cả thế giới.
Họ gọi:
Google Maps API.
↓
Google gửi dữ liệu bản đồ.
↓
Website hiển thị.
Ví dụ với ChatGPT
Bạn gõ:
"Hôm nay học gì?"
↓
Ứng dụng gửi yêu cầu.
↓
OpenAI API xử lý.
↓
Trả lời.
↓
Bạn nhìn thấy kết quả.
Toàn bộ quá trình đó.
Đều thông qua API.
API hoạt động như thế nào?
Đơn giản nhất.
Có bốn bước.
Bước 1
Client gửi yêu cầu.
↓
"Tôi muốn danh sách sản phẩm."
Bước 2
API nhận yêu cầu.
↓
Kiểm tra.
↓
Chuyển vào hệ thống.
Bước 3
Server xử lý.
↓
Đọc Database.
↓
Lấy dữ liệu.
Bước 4
API gửi kết quả.
↓
Client nhận được.
↓
Hiển thị.
Xong.
Request là gì?
Request.
Hiểu đơn giản là:
"Lời yêu cầu."
Ví dụ.
Bạn nói.
"Cho tôi một hamburger."
Đó chính là:
Request.
Response là gì?
Sau vài phút.
Nhân viên mang ra một hamburger
Đó chính là:
Response.
Hay nói cách khác.
API luôn có:
Request
↓
Response
REST API là gì?
Đừng sợ cái tên.
REST API.
Chỉ là kiểu API phổ biến nhất hiện nay.
- Hầu hết website.
- Ứng dụng.
- Mobile App.
Đều đang sử dụng.
Người "mới tập tành".
Chỉ cần nhớ.
REST API cũng là API.
Chỉ khác ở cách thiết kế.
Tập tành làm web
Có bạn hỏi.
"Em làm website bán sách."
"Làm sao lấy tỷ giá USD?"
Câu trả lời là.
Đừng tự cập nhật mỗi ngày, sẽ mau nản Chí Phèo lắm!
Hãy dùng:
API.
↓
Website ngân hàng.
Hoặc.
Dịch vụ tỷ giá.
Sẽ trả dữ liệu.
Website bạn chỉ việc hiển thị.
Một hiểu lầm phổ biến
Nhiều người nghĩ.
API.
Là Database.
Không.
API.
Không phải nơi lưu dữ liệu.
API chỉ là:
Người trung gian.
Giống như nhân viên phục vụ.
Không ai ăn...
Nhân viên phục vụ cả.
API có phải lúc nào cũng trả HTML?
Không.
Đây là điều thú vị.
Đa số API.
Không trả về giao diện.
Nó trả về:
Dữ liệu.
Ví dụ.
- Tên.
- Giá.
- Ngày sinh.
- Địa chỉ.
- ...
Rồi.
Website của bạn.
Tự hiển thị.
Một mẹo "hết nước chấm"
Nếu nghe ai nói.
"Website này có API."
Hãy hiểu đơn giản.
Website đó.
Cho phép chương trình khác.
Đến "xin dữ liệu."
Theo đúng quy tắc. Chứ không phải...xin đểu!!
Debug kiểu dev "xịn sò"
1. Đừng vội nghĩ API là thứ quá phức tạp
Bạn dùng API mỗi ngày.
Mà có thể không biết.
2. Luôn đọc tài liệu API
Mỗi API có cách sử dụng riêng.
3. Kiểm tra Request
Gửi đúng chưa?
4. Kiểm tra Response
API trả về gì?
Có báo lỗi không?
5. Đừng quên Internet
API online.
Thường cần kết nối mạng.
Checklist chuẩn không cần chỉnh
API là cầu nối giữa hai chương trình
Client gửi Request
Server trả Response
API không phải Database
API thường trả dữ liệu
Website hiện đại gần như đều dùng API
FAQ nhanh
API có phải là một ngôn ngữ lập trình không?
Không. API là cách để các chương trình giao tiếp với nhau.
API có cần Internet không?
Phần lớn Web API cần Internet, nhưng cũng có API hoạt động trong mạng nội bộ.
API chỉ dùng cho PHP?
Không. Hầu như mọi ngôn ngữ lập trình đều có thể sử dụng API.
Muốn dùng API có cần biết Database của bên kia không?
Không. Bạn chỉ cần làm theo tài liệu API mà họ cung cấp.
Bạn có thể cũng đang gặp
HTTP vs HTTPS là gì? (Vì sao trình duyệt hiện "Not Secure"?)
localhost vs hosting khác nhau thế nào?
Session vs Cookie - Hai anh em dễ nhầm nhất của PHP