RESTful APIs vs. Non-RESTful APIs
Trong những năm gần đây, ngành phát triển phần mềm đã dần chuẩn hóa cách thiết kế và tiêu thụ (consume) API để các lập trình viên dễ dàng sử dụng hơn, đặc biệt trong mảng web development. Một trong những định dạng API phổ biến nhất hơn một thập kỷ qua là REST API.
REST API không chỉ được dùng cho ứng dụng web mà còn xuất hiện trong network orchestrator như:
Ngay cả các thiết bị mạng “DNA-ready” cũng hỗ trợ chuẩn này thông qua RESTCONF.
1. Các ràng buộc thiết kế (Design Constraints) của REST API
Một API được coi là RESTful khi tuân thủ 6 constraint, trong đó 3 constraint quan trọng nhất khi áp dụng vào network API:
2. RESTful API trong networking
Vì thế, khi viết Python script hoặc dùng Postman để thao tác với thiết bị Cisco, thực chất chúng ta đang gọi HTTP verbs kèm JSON/XML payload dựa trên YANG model.
Ví dụ: RESTCONF trên Cisco IOS XE chính là một triển khai RESTful API, cho phép quản trị viên thực hiện CRUD trực tiếp với tài nguyên thiết bị.
3. Non-RESTful API trong networking
Không phải API nào chạy qua HTTP cũng là RESTful.
4. Ý nghĩa cho kỹ sư hệ thống & cloud
Câu hỏi ôn tập
Transport protocol phổ biến nhất của RESTful API là gì?
(Đáp án đúng: HTTP)
👉 Với anh em mới tiếp cận automation, lời khuyên là hãy nắm chắc HTTP fundamentals + CRUD operations, sau đó tập làm lab với RESTCONF trên Cisco IOS XE hoặc Azure/AWS REST API. Đây là nền móng để đi sâu vào DevNet, NetDevOps và Cloud Automation.
Trong những năm gần đây, ngành phát triển phần mềm đã dần chuẩn hóa cách thiết kế và tiêu thụ (consume) API để các lập trình viên dễ dàng sử dụng hơn, đặc biệt trong mảng web development. Một trong những định dạng API phổ biến nhất hơn một thập kỷ qua là REST API.
REST API không chỉ được dùng cho ứng dụng web mà còn xuất hiện trong network orchestrator như:
- Cisco ASA Adaptive Security Appliance
- Cisco ACI (Application Centric Infrastructure)
- Cisco DNA Center
- Cisco NSO (Network Services Orchestrator)
Ngay cả các thiết bị mạng “DNA-ready” cũng hỗ trợ chuẩn này thông qua RESTCONF.
1. Các ràng buộc thiết kế (Design Constraints) của REST API
Một API được coi là RESTful khi tuân thủ 6 constraint, trong đó 3 constraint quan trọng nhất khi áp dụng vào network API:
- Client/Server: phân tách client và server, giúp dễ dàng thay đổi phía client mà không ảnh hưởng server.
- Stateless: mỗi request chứa đầy đủ dữ liệu để server xử lý, không có trạng thái duy trì như SSH session.
- Uniform Interface: tài nguyên (resource) được định danh qua URL, ví dụ /interfaces/GigabitEthernet0/0 hay /routing/ospf. Client chỉ cần biết URL + payload là có thể tạo, sửa, xóa hoặc đọc dữ liệu.
2. RESTful API trong networking
- RESTful API thường dùng HTTP làm giao thức vận chuyển.
- Hoạt động tương tự web:
- GET: lấy dữ liệu (ví dụ: show running-config).
- POST: tạo mới (ví dụ: tạo loopback).
- PUT/PATCH: cập nhật cấu hình.
- DELETE: xóa tài nguyên.
Vì thế, khi viết Python script hoặc dùng Postman để thao tác với thiết bị Cisco, thực chất chúng ta đang gọi HTTP verbs kèm JSON/XML payload dựa trên YANG model.
Ví dụ: RESTCONF trên Cisco IOS XE chính là một triển khai RESTful API, cho phép quản trị viên thực hiện CRUD trực tiếp với tài nguyên thiết bị.
3. Non-RESTful API trong networking
Không phải API nào chạy qua HTTP cũng là RESTful.
- Một số hệ thống không tuân thủ REST: tất cả request đều dùng POST, hoặc thậm chí GET lại thay đổi cấu hình.
- Các API loại này thường gọi là non-RESTful APIs.
- Trong networking, non-RESTful API thường chỉ là “wrapper” để gửi CLI command xuống thiết bị, thay vì gửi dữ liệu có cấu trúc (structured data).
4. Ý nghĩa cho kỹ sư hệ thống & cloud
- RESTful API là nền tảng để tự động hóa và orchestration trong môi trường multi-cloud, hybrid cloud.
- Với Cisco DNA Center, NSO hay Azure/AWS API Gateway, bạn sẽ thấy RESTful là tiêu chuẩn mặc định.
- Non-RESTful API có thể vẫn hữu ích trong một số tình huống legacy, nhưng khó mở rộng và thiếu tính chuẩn hóa.
Câu hỏi ôn tập
Transport protocol phổ biến nhất của RESTful API là gì?
- HTTP
- SSH
- RESTCONF
- HTML
- Telnet
(Đáp án đúng: HTTP)
👉 Với anh em mới tiếp cận automation, lời khuyên là hãy nắm chắc HTTP fundamentals + CRUD operations, sau đó tập làm lab với RESTCONF trên Cisco IOS XE hoặc Azure/AWS REST API. Đây là nền móng để đi sâu vào DevNet, NetDevOps và Cloud Automation.