Khi mới tìm hiểu về Cisco DevNet và Network Automation, nhiều người thường nghĩ ngay đến Python.
Nhưng theo mình, trước khi viết dòng code đầu tiên, có một thứ quan trọng hơn cần hiểu:
👉 REST API hoạt động như thế nào?
Bởi vì dù sử dụng Python, Postman, Ansible hay SDK, bản chất phía sau vẫn là:
Request → API xử lý → Response → Phân tích dữ liệu
Trong bài lab này, mình bắt đầu với một công cụ rất đơn giản nhưng cực kỳ hữu ích: cURL.
🔹 1. Làm quen với cURL
cURL là command-line tool cho phép gửi HTTP/HTTPS Request đến các hệ thống và API.
Trong DevNet, cURL có thể dùng để:
✅ Gửi HTTP Request
✅ Kiểm tra API Endpoint
✅ Truyền HTTP Header
✅ Thực hiện Authentication
✅ Nhận dữ liệu JSON
✅ Troubleshooting API
Ví dụ:
curl -v https://www.google.com
Với tham số -v, chúng ta có thể quan sát quá trình Request/Response, HTTP Header, Status Code và dữ liệu trả về.
Đây là kỹ năng rất hữu ích khi cần xác định một API đang gặp vấn đề ở đâu.
🔹 2. Từ cURL đến Cisco Meraki API
Sau khi hiểu cách gửi HTTP Request, chúng ta có thể bắt đầu làm việc với hệ thống mạng thực tế.
Trong lab, mình sử dụng Cisco Meraki Dashboard API để truy xuất thông tin từ hệ thống quản lý mạng.
Một API Request cơ bản thường gồm:
API Endpoint + HTTP Method + Authentication + HTTP Header
Ví dụ:
curl https://api.meraki.com/api/v1/organizations ^
-H "X-Cisco-Meraki-API-Key: YOUR_API_KEY" ^
-H "Accept: application/json" ^
-X GET
Request sử dụng HTTP GET để lấy danh sách Organization.
Điểm quan trọng ở đây là API Key được truyền qua HTTP Header để xác thực Client. Response trả về thường ở dạng JSON, từ đó có thể tiếp tục xử lý hoặc đưa vào các workflow tự động hóa.
🔹 3. Không chỉ gọi API – phải hiểu dữ liệu
Với Meraki API, dữ liệu được tổ chức theo từng cấp:
Organization
↓
Network
↓
Device
↓
Device Information
Với Wireless:
Network
↓
Wireless
↓
SSID
Ví dụ, sau khi lấy được Organization ID, chúng ta dùng ID đó để truy vấn Network. Có Network ID thì tiếp tục truy vấn Device.
Đây chính là tư duy quan trọng khi làm việc với REST API:
👉 Không chỉ biết gọi API, mà phải hiểu dữ liệu liên kết với nhau như thế nào.
🔹 4. Vì sao nên hiểu API trước khi học Automation?
Khi viết Python:
response = requests.get(url, headers=headers)
Thực tế, Python đang giúp chúng ta tự động hóa việc gửi Request và xử lý Response.
Nếu chưa hiểu:
❓ HTTP Method là gì?
❓ API Endpoint là gì?
❓ Header dùng để làm gì?
❓ Authentication hoạt động thế nào?
❓ JSON Response có cấu trúc ra sao?
❓ HTTP Status Code có ý nghĩa gì?
thì rất dễ rơi vào tình trạng "copy code nhưng không hiểu code đang làm gì".
Ngược lại, khi đã hiểu REST API, việc chuyển sang Python, Postman hay Ansible sẽ dễ dàng hơn rất nhiều.
Tool thay đổi – nhưng nguyên lý không thay đổi.
cURL → Postman → Python → Ansible → SDK
Tất cả đều xoay quanh một nền tảng:
👉 Request → API → Response
🔹 5. Từ một API Request đến Network Automation
Ban đầu, chúng ta chỉ dùng cURL để lấy thông tin:
📌 Organization
📌 Network
📌 Device
📌 SSID
Nhưng khi kết hợp với Python, chúng ta có thể tiến xa hơn:
→ Tự động lấy danh sách thiết bị
→ Kiểm tra trạng thái hàng loạt thiết bị
→ Thu thập thông tin mạng
→ Tạo báo cáo
→ Tự động thay đổi cấu hình
→ Tích hợp API vào hệ thống quản lý
Và đó chính là lúc chúng ta chuyển từ:
"Quản trị thiết bị thủ công" sang "Tự động hóa hạ tầng mạng bằng API".
💡 Nếu bạn đang bắt đầu với Cisco DevNet hoặc Network Automation, có lẽ câu hỏi đầu tiên không nên là:
"Học Python từ đâu?"
Mà nên là:
👉 "Tôi đã thực sự hiểu cách một API Request hoạt động chưa?"
Đây có thể là bước nền tảng giúp bạn học Automation nhanh hơn, hiểu sâu hơn và ít phụ thuộc vào việc copy code.
Còn bạn thì sao?
Khi bắt đầu học Network Automation, bạn sẽ chọn Python trước hay REST API trước? 👇
Nhưng theo mình, trước khi viết dòng code đầu tiên, có một thứ quan trọng hơn cần hiểu:
👉 REST API hoạt động như thế nào?
Bởi vì dù sử dụng Python, Postman, Ansible hay SDK, bản chất phía sau vẫn là:
Request → API xử lý → Response → Phân tích dữ liệu
Trong bài lab này, mình bắt đầu với một công cụ rất đơn giản nhưng cực kỳ hữu ích: cURL.
🔹 1. Làm quen với cURL
cURL là command-line tool cho phép gửi HTTP/HTTPS Request đến các hệ thống và API.
Trong DevNet, cURL có thể dùng để:
✅ Gửi HTTP Request
✅ Kiểm tra API Endpoint
✅ Truyền HTTP Header
✅ Thực hiện Authentication
✅ Nhận dữ liệu JSON
✅ Troubleshooting API
Ví dụ:
curl -v https://www.google.com
Với tham số -v, chúng ta có thể quan sát quá trình Request/Response, HTTP Header, Status Code và dữ liệu trả về.
Đây là kỹ năng rất hữu ích khi cần xác định một API đang gặp vấn đề ở đâu.
🔹 2. Từ cURL đến Cisco Meraki API
Sau khi hiểu cách gửi HTTP Request, chúng ta có thể bắt đầu làm việc với hệ thống mạng thực tế.
Trong lab, mình sử dụng Cisco Meraki Dashboard API để truy xuất thông tin từ hệ thống quản lý mạng.
Một API Request cơ bản thường gồm:
API Endpoint + HTTP Method + Authentication + HTTP Header
Ví dụ:
curl https://api.meraki.com/api/v1/organizations ^
-H "X-Cisco-Meraki-API-Key: YOUR_API_KEY" ^
-H "Accept: application/json" ^
-X GET
Request sử dụng HTTP GET để lấy danh sách Organization.
Điểm quan trọng ở đây là API Key được truyền qua HTTP Header để xác thực Client. Response trả về thường ở dạng JSON, từ đó có thể tiếp tục xử lý hoặc đưa vào các workflow tự động hóa.
🔹 3. Không chỉ gọi API – phải hiểu dữ liệu
Với Meraki API, dữ liệu được tổ chức theo từng cấp:
Organization
↓
Network
↓
Device
↓
Device Information
Với Wireless:
Network
↓
Wireless
↓
SSID
Ví dụ, sau khi lấy được Organization ID, chúng ta dùng ID đó để truy vấn Network. Có Network ID thì tiếp tục truy vấn Device.
Đây chính là tư duy quan trọng khi làm việc với REST API:
👉 Không chỉ biết gọi API, mà phải hiểu dữ liệu liên kết với nhau như thế nào.
🔹 4. Vì sao nên hiểu API trước khi học Automation?
Khi viết Python:
response = requests.get(url, headers=headers)
Thực tế, Python đang giúp chúng ta tự động hóa việc gửi Request và xử lý Response.
Nếu chưa hiểu:
❓ HTTP Method là gì?
❓ API Endpoint là gì?
❓ Header dùng để làm gì?
❓ Authentication hoạt động thế nào?
❓ JSON Response có cấu trúc ra sao?
❓ HTTP Status Code có ý nghĩa gì?
thì rất dễ rơi vào tình trạng "copy code nhưng không hiểu code đang làm gì".
Ngược lại, khi đã hiểu REST API, việc chuyển sang Python, Postman hay Ansible sẽ dễ dàng hơn rất nhiều.
Tool thay đổi – nhưng nguyên lý không thay đổi.
cURL → Postman → Python → Ansible → SDK
Tất cả đều xoay quanh một nền tảng:
👉 Request → API → Response
🔹 5. Từ một API Request đến Network Automation
Ban đầu, chúng ta chỉ dùng cURL để lấy thông tin:
📌 Organization
📌 Network
📌 Device
📌 SSID
Nhưng khi kết hợp với Python, chúng ta có thể tiến xa hơn:
→ Tự động lấy danh sách thiết bị
→ Kiểm tra trạng thái hàng loạt thiết bị
→ Thu thập thông tin mạng
→ Tạo báo cáo
→ Tự động thay đổi cấu hình
→ Tích hợp API vào hệ thống quản lý
Và đó chính là lúc chúng ta chuyển từ:
"Quản trị thiết bị thủ công" sang "Tự động hóa hạ tầng mạng bằng API".
💡 Nếu bạn đang bắt đầu với Cisco DevNet hoặc Network Automation, có lẽ câu hỏi đầu tiên không nên là:
"Học Python từ đâu?"
Mà nên là:
👉 "Tôi đã thực sự hiểu cách một API Request hoạt động chưa?"
Đây có thể là bước nền tảng giúp bạn học Automation nhanh hơn, hiểu sâu hơn và ít phụ thuộc vào việc copy code.
Còn bạn thì sao?
Khi bắt đầu học Network Automation, bạn sẽ chọn Python trước hay REST API trước? 👇