REST API hoạt động như thế nào?
REST API (Representational State Transfer API) là một cách phổ biến để các ứng dụng và hệ thống trao đổi dữ liệu với nhau qua HTTP/HTTPS.
Đối với Network Engineer, REST API đặc biệt quan trọng vì các nền tảng hiện đại như SD-WAN, Network Controller, Firewall Manager, Cloud và Automation Platform đều cung cấp API để cấu hình và giám sát hệ thống bằng phần mềm thay vì chỉ thao tác CLI/GUI.
1. Client gửi Request
Client có thể là Python script, Ansible, Postman hoặc một ứng dụng khác. Client gửi HTTP request tới một API Endpoint, ví dụ:
Request thường gồm HTTP Method + URL + Headers + Authentication + Body (nếu cần).
Các method phổ biến là:
Có thể nhớ nhanh theo CRUD:
API server nhận request, kiểm tra authentication/authorization, validate dữ liệu rồi thực hiện hành động tương ứng.
Ví dụ Network Automation muốn lấy thông tin interface:
GET /api/devices/R1/interfaces
Hoặc thay đổi description:
PATCH /api/devices/R1/interfaces/GigabitEthernet1
API phía sau có thể truy vấn database, controller hoặc thực hiện thay đổi trên network device.
3. Server trả Response
Sau khi xử lý, API trả về HTTP Response, thường gồm status code, headers và response body.
Dữ liệu REST API hiện đại thường sử dụng JSON; XML hoặc text cũng có thể được sử dụng.
Ví dụ:
{
"interface": "GigabitEthernet1",
"status": "up",
"ip_address": "10.10.10.1"
}
Một số HTTP status code Network Engineer nên nhớ:
200 OK – thành công
201 Created – tạo resource thành công
400 Bad Request – request không hợp lệ
401 Unauthorized – chưa xác thực hợp lệ
403 Forbidden – đã xác thực nhưng không có quyền
404 Not Found – không tìm thấy resource
500 Internal Server Error – lỗi phía server
REST API quan trọng với Network Engineer ở điểm nào?
Trước đây:
Với API:
REST API vì vậy là một nền tảng quan trọng của Network Automation, Infrastructure as Code, SDN, Cloud và DevNet.
Điểm cần nhớ là: REST mô hình hóa hệ thống thành các resource; client dùng HTTP methods để đọc hoặc thay đổi các resource đó, còn server trả kết quả về dưới dạng representation, phổ biến nhất là JSON.
REST API (Representational State Transfer API) là một cách phổ biến để các ứng dụng và hệ thống trao đổi dữ liệu với nhau qua HTTP/HTTPS.
Đối với Network Engineer, REST API đặc biệt quan trọng vì các nền tảng hiện đại như SD-WAN, Network Controller, Firewall Manager, Cloud và Automation Platform đều cung cấp API để cấu hình và giám sát hệ thống bằng phần mềm thay vì chỉ thao tác CLI/GUI.
1. Client gửi Request
Client có thể là Python script, Ansible, Postman hoặc một ứng dụng khác. Client gửi HTTP request tới một API Endpoint, ví dụ:
Request thường gồm HTTP Method + URL + Headers + Authentication + Body (nếu cần).
Các method phổ biến là:
- GET – đọc/lấy resource.
- POST – tạo resource mới.
- PUT – cập nhật/thay thế toàn bộ resource.
- PATCH – chỉ cập nhật một phần resource.
- DELETE – xóa resource.
Có thể nhớ nhanh theo CRUD:
Create → POST
Read → GET
Update → PUT/PATCH
Delete → DELETE
2. API Service xử lý RequestRead → GET
Update → PUT/PATCH
Delete → DELETE
API server nhận request, kiểm tra authentication/authorization, validate dữ liệu rồi thực hiện hành động tương ứng.
Ví dụ Network Automation muốn lấy thông tin interface:
GET /api/devices/R1/interfaces
Hoặc thay đổi description:
PATCH /api/devices/R1/interfaces/GigabitEthernet1
API phía sau có thể truy vấn database, controller hoặc thực hiện thay đổi trên network device.
3. Server trả Response
Sau khi xử lý, API trả về HTTP Response, thường gồm status code, headers và response body.
Dữ liệu REST API hiện đại thường sử dụng JSON; XML hoặc text cũng có thể được sử dụng.
Ví dụ:
{
"interface": "GigabitEthernet1",
"status": "up",
"ip_address": "10.10.10.1"
}
Một số HTTP status code Network Engineer nên nhớ:
200 OK – thành công
201 Created – tạo resource thành công
400 Bad Request – request không hợp lệ
401 Unauthorized – chưa xác thực hợp lệ
403 Forbidden – đã xác thực nhưng không có quyền
404 Not Found – không tìm thấy resource
500 Internal Server Error – lỗi phía server
REST API quan trọng với Network Engineer ở điểm nào?
Trước đây:
Engineer → SSH → CLI → cấu hình từng thiết bị
Với API:
Python/Ansible/Automation → REST API → Controller/Device → hàng trăm thiết bị
REST API vì vậy là một nền tảng quan trọng của Network Automation, Infrastructure as Code, SDN, Cloud và DevNet.
Điểm cần nhớ là: REST mô hình hóa hệ thống thành các resource; client dùng HTTP methods để đọc hoặc thay đổi các resource đó, còn server trả kết quả về dưới dạng representation, phổ biến nhất là JSON.