Ngày nay, API xuất hiện ở khắp mọi nơi – từ một cú click trong ứng dụng điện thoại đến các quy trình CI/CD, AI pipelines, hay tương tác hạ tầng mạng. API chính là “cửa ngõ giao tiếp” giữa các hệ thống, và nếu bạn đang làm việc trong lĩnh vực DevNet, DevSecOps, hay Infrastructure as Code, thì hiểu rõ API là chuyện… sống còn!
Vậy API là gì, và có những loại nào?
Để bắt đầu, hãy làm quen với 3 “ông lớn” đứng sau các chuẩn API hiện đại:
SOAP – Simple Object Access Protocol
Chuẩn "cổ nhưng không cũ", phát triển bởi Microsoft.
Giao tiếp qua XML với các định nghĩa chặt chẽ dựa trên XSD (XML Schema Definition).
Được dùng trong nhiều ứng dụng kế thừa (legacy), và thay thế cho các công nghệ cổ như DCOM và CORBA.
Trang chủ: https://www.w3.org/TR/soap
TIP thực chiến: Nếu bạn phải tích hợp với hệ thống ERP, hệ thống tài chính hoặc chính phủ, SOAP vẫn còn phổ biến lắm!
REST – Representational State Transfer
Chuẩn API phổ biến nhất hiện nay.
Giao tiếp đơn giản, linh hoạt qua HTTP.
Dùng JSON thay vì XML, cực kỳ dễ tích hợp với frontend và mobile.
Có hỗ trợ tiêu chuẩn OpenAPI / Swagger để mô tả tài liệu rõ ràng.
Trang chủ: https://www.openapis.org
TIP thực chiến: REST là “must-know” khi viết microservices, DevOps pipelines, hoặc tự động hóa cloud infrastructure!
GraphQL – Ngôn ngữ truy vấn hiện đại cho API
Được Facebook tạo ra để giải quyết vấn đề truy vấn dữ liệu hiệu quả.
Cho phép client chỉ lấy đúng dữ liệu cần thiết, rất phù hợp với ứng dụng mobile, dashboard.
Trang chủ: https://graphql.org/code
TIP thực chiến: Nếu bạn làm frontend, app mobile, hoặc muốn tối ưu performance với API linh hoạt => GraphQL là vũ khí đáng gờm!
Tài liệu kỹ thuật: Chìa khóa để hiểu sâu hệ thống API
API không chỉ là “cách để gọi hàm” – nó còn tiết lộ rất nhiều chi tiết nội bộ của ứng dụng, cực kỳ hữu ích cho testing hoặc pentest API!
Dưới đây là các dạng tài liệu mô tả API bạn nên biết:
Swagger / OpenAPI Specification (OAS)
Chuẩn hiện đại để mô tả REST APIs.
Dễ dàng tạo UI test, generate client code.
https://swagger.io | https://github.com/OAI/OpenAPI-Specification
WSDL (Web Services Description Language)
Mô tả chi tiết chức năng dịch vụ web sử dụng SOAP.
Dựa trên XML, định nghĩa rõ kiểu dữ liệu, phương thức.
https://www.w3.org/TR/wsdl20-primer
WADL (Web Application Description Language)
Dùng để mô tả REST API, nhưng ít phổ biến hơn Swagger.
https://www.w3.org/Submission/wadl
Tổng kết cho anh em AUTOMATION / SECDevOps / Cloud Infra
Nếu bạn đang học lập trình mạng, học về API là nền tảng bắt buộc.
Nếu bạn đang tự động hóa với Ansible, Terraform, hoặc viết các tool tương tác thiết bị mạng => giao tiếp API là điều đầu tiên bạn phải thành thạo.
Nếu bạn làm về bảo mật API, bạn cần hiểu các chuẩn tài liệu như Swagger hoặc WSDL để đánh giá attack surface.