REST API (Representational State Transfer API) là một trong những cách phổ biến nhất để phần mềm giao tiếp với các hệ thống hạ tầng hiện đại. Với dân Network/Cloud, REST API đặc biệt quan trọng vì controller, firewall, SD-WAN, Cloud platform và hệ thống automation đều có thể cung cấp API để thay thế hoặc bổ sung cho CLI.
Luồng hoạt động cơ bản trong hình là:
Client Request → API Service → Xử lý → Response → Client Action
1. Client gửi Request
Client có thể là Python script, Ansible, Terraform, Postman hoặc một ứng dụng automation. Request thường gửi tới một API endpoint và sử dụng HTTP method phù hợp.
Các method quan trọng gồm:
Ví dụ muốn lấy thông tin một thiết bị:
GET /api/devices/101
Muốn tạo một network mới:
POST /api/networks
Còn nếu chỉ muốn thay đổi một thuộc tính của resource hiện tại, PATCH thường phù hợp hơn PUT.
2. API Service xử lý yêu cầu
API Service nhận request, kiểm tra authentication/authorization, endpoint, method, parameters và dữ liệu gửi kèm.
Sau đó hệ thống thực hiện hành động tương ứng:
GET → Read
POST → Create
PUT → Replace/Update
PATCH → Modify
DELETE → Remove
Trong môi trường Network Automation, hành động phía sau API có thể là lấy trạng thái interface, tạo VLAN, thay đổi policy, cấu hình firewall rule hoặc provisioning một tài nguyên Cloud. 3. Server trả Response
Sau khi xử lý, API trả response cho client. Dữ liệu có thể ở dạng JSON, XML hoặc text, trong đó JSON hiện rất phổ biến.
Ví dụ:
{
"hostname": "R1",
"interface": "GigabitEthernet1",
"status": "up"
}
Response thường đi kèm HTTP Status Code, chẳng hạn:
200 OK
201 Created
400 Bad Request
401 Unauthorized
403 Forbidden
404 Not Found
500 Internal Server Error
Đây là thông tin cực kỳ hữu ích khi troubleshooting automation. REST API dưới góc nhìn Network Engineer
Có thể hình dung API giống như một CLI dành cho phần mềm.
Thay vì engineer nhập:
show interfaces
một chương trình có thể thực hiện:
GET /api/interfaces
Sau đó nhận JSON, phân tích kết quả và tự động thực hiện bước tiếp theo.
Điểm mạnh thực sự của REST API vì vậy không chỉ nằm ở việc đọc hay cấu hình thiết bị từ xa, mà ở khả năng biến hạ tầng thành thứ mà phần mềm có thể tương tác. Đây chính là nền tảng quan trọng của Network Programmability, Infrastructure as Code, CI/CD và Network Automation.
Luồng hoạt động cơ bản trong hình là:
Client Request → API Service → Xử lý → Response → Client Action
1. Client gửi Request
Client có thể là Python script, Ansible, Terraform, Postman hoặc một ứng dụng automation. Request thường gửi tới một API endpoint và sử dụng HTTP method phù hợp.
Các method quan trọng gồm:
- GET – đọc/lấy thông tin resource.
- POST – tạo resource mới.
- PUT – cập nhật hoặc thay thế resource, thường gửi representation đầy đủ.
- PATCH – chỉ cập nhật những thành phần cần thay đổi.
- DELETE – xóa resource.
Ví dụ muốn lấy thông tin một thiết bị:
GET /api/devices/101
Muốn tạo một network mới:
POST /api/networks
Còn nếu chỉ muốn thay đổi một thuộc tính của resource hiện tại, PATCH thường phù hợp hơn PUT.
2. API Service xử lý yêu cầu
API Service nhận request, kiểm tra authentication/authorization, endpoint, method, parameters và dữ liệu gửi kèm.
Sau đó hệ thống thực hiện hành động tương ứng:
GET → Read
POST → Create
PUT → Replace/Update
PATCH → Modify
DELETE → Remove
Trong môi trường Network Automation, hành động phía sau API có thể là lấy trạng thái interface, tạo VLAN, thay đổi policy, cấu hình firewall rule hoặc provisioning một tài nguyên Cloud. 3. Server trả Response
Sau khi xử lý, API trả response cho client. Dữ liệu có thể ở dạng JSON, XML hoặc text, trong đó JSON hiện rất phổ biến.
Ví dụ:
{
"hostname": "R1",
"interface": "GigabitEthernet1",
"status": "up"
}
Response thường đi kèm HTTP Status Code, chẳng hạn:
200 OK
201 Created
400 Bad Request
401 Unauthorized
403 Forbidden
404 Not Found
500 Internal Server Error
Đây là thông tin cực kỳ hữu ích khi troubleshooting automation. REST API dưới góc nhìn Network Engineer
Có thể hình dung API giống như một CLI dành cho phần mềm.
Thay vì engineer nhập:
show interfaces
một chương trình có thể thực hiện:
GET /api/interfaces
Sau đó nhận JSON, phân tích kết quả và tự động thực hiện bước tiếp theo.
Điểm mạnh thực sự của REST API vì vậy không chỉ nằm ở việc đọc hay cấu hình thiết bị từ xa, mà ở khả năng biến hạ tầng thành thứ mà phần mềm có thể tương tác. Đây chính là nền tảng quan trọng của Network Programmability, Infrastructure as Code, CI/CD và Network Automation.