Xin chào ! Nếu đây là lần đầu tiên bạn đến với diễn đàn, xin vui lòng danh ra một phút bấm vào đây để đăng kí và tham gia thảo luận cùng VnPro.
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • HTTP-based API – Bài 3 trong loạt 6 bài về API dành cho cộng đồng VnPro

    HTTP-based API – Bài 3 trong loạt 6 bài về API dành cho cộng đồng VnPro

    🔥 Bạn có đang hiểu sai về API?
    Nhiều kỹ sư mạng nghĩ rằng API là một chủ đề dành riêng cho lập trình viên, quá phức tạp, hoặc không cần thiết khi đã có CLI. Nhưng sự thật là: nếu bạn biết dùng trình duyệt web, bạn đã vô tình biết cách dùng API rồi! Đặc biệt là các loại API dựa trên HTTP như REST API – đây chính là cánh cửa để bạn bước vào thế giới tự động hóa mạng (Network Automation).
    REST API – Cũng chỉ là lướt web cho máy móc


    Khi bạn gõ https://vnpro.vn vào trình duyệt, bạn gửi đi một yêu cầu HTTP GET đến máy chủ. Máy chủ hiểu yêu cầu dựa trên URL và trả lại HTML, trình duyệt hiển thị ra giao diện cho bạn.

    REST API hoạt động tương tự, chỉ khác:
    • Client có thể là Postman, cURL, script Python, hoặc plugin.
    • Server có thể là một thiết bị mạng như router/switch Cisco có hỗ trợ web server.
    • Thay vì HTML, server trả về JSON hoặc XML để máy móc xử lý.

    Vì vậy, dùng REST API về bản chất là bạn "lướt web" nhưng là để tương tác với thiết bị mạng, thay vì một trang web bình thường.
    Những thành phần cơ bản của một HTTP-based API


    Để gửi một lệnh API thành công đến thiết bị mạng, bạn cần chuẩn bị các phần sau:

    1. HTTP Method: Đây là "động từ" của REST API, thể hiện hành động bạn muốn làm: GET, POST, PUT, PATCH hoặc DELETE.
    2. URL: Xác định đối tượng mà bạn muốn tương tác – ví dụ: cấu hình một interface, xóa một VLAN, hoặc lấy danh sách route.
    3. Headers: Dùng để thông báo loại dữ liệu mà client gửi và server trả về. Phổ biến nhất là Content-Type và Accept, thường là application/json.
    4. Body: Chứa dữ liệu cần gửi đi, chỉ bắt buộc trong POST, PUT, PATCH – ví dụ như thông tin cấu hình interface.
    5. Authentication: Hầu hết thiết bị yêu cầu xác thực – thường là Basic (username:password) hoặc dùng token.
    Làm quen với các hành động HTTP


    Mỗi HTTP method tương ứng với một loại thao tác:
    • GET dùng để lấy thông tin mà không làm thay đổi dữ liệu. Nó "an toàn" vì chỉ đọc, không ghi.
    • POST dùng để tạo mới một cấu hình hoặc đối tượng – ví dụ: thêm VLAN mới, tạo route mới.
    • PUT dùng để ghi đè toàn bộ cấu hình của một đối tượng – thường dùng khi bạn biết toàn bộ nội dung cần cập nhật.
    • PATCH dùng để cập nhật một phần – tức là bạn chỉ sửa vài thuộc tính, không cần gửi lại toàn bộ cấu hình.
    • DELETE dùng để xóa một đối tượng khỏi thiết bị – ví dụ: xóa VLAN, xóa route, hoặc xóa user.

    Bạn có thể tưởng tượng:
    • GET giống như xem cấu hình hiện tại
    • POST như tạo config mới
    • PUT là thay đổi toàn bộ config cũ bằng cái mới
    • PATCH là chỉ chỉnh vài dòng trong config
    • DELETE là xóa config đi

    Phản hồi từ thiết bị – HTTP Status Codes


    Sau khi bạn gửi yêu cầu API, thiết bị sẽ phản hồi lại kèm một mã trạng thái HTTP (status code). Mã này cho bạn biết yêu cầu có thành công hay gặp lỗi.

    Các nhóm mã phản hồi thường gặp:
    • 1xx – Thông tin: Hầu như không thấy nhiều.
    • 2xx – Thành công: Mã 200 nghĩa là OK, 201 là đã tạo thành công.
    • 3xx – Điều hướng: Ít gặp trong REST API.
    • 4xx – Lỗi phía client: Ví dụ 400 là cú pháp sai, 401 là chưa xác thực, 403 là bị cấm truy cập, 404 là không tìm thấy đối tượng.
    • 5xx – Lỗi phía server: Hệ thống đích gặp sự cố nội bộ, lỗi thực thi.

    Trong quá trình làm việc với API, bạn sẽ rất nhanh thuộc lòng những mã như 200, 201, 400, 401, 404, 500 vì chúng giúp bạn xác định lỗi và xử lý sự cố nhanh chóng.
    Thực tế hơn – ví dụ đơn giản


    Bạn dùng Postman gửi lệnh GET đến thiết bị Cisco để lấy danh sách VLAN:
    Thiết bị trả về JSON như:


    { "vlan": { "vlan-list": [ { "id": 10, "name": "STAFF" }, { "id": 20, "name": "IT" } ] } }



    Bạn đã vừa "đọc" được cấu hình VLAN mà không cần gõ CLI!
    Kết luận – Từ CLI đến API


    Nếu CLI là cây gậy gõ lệnh, thì REST API là công cụ tự động hóa. Nó cho phép bạn:

    ✅ Lập trình script để lấy dữ liệu mạng tự động
    ✅ Thay đổi cấu hình mà không cần Telnet/SSH
    ✅ Tích hợp mạng với phần mềm quản lý, dashboard, hệ thống giám sát

    Đây là tương lai của NetDevOps, và bạn – một kỹ sư mạng – hoàn toàn có thể làm chủ nó.
    Attached Files
    Đặng Quang Minh, CCIE#11897 (Enterprise Infrastructure, Wireless, Automation, AI), CCSI#31417

    Email : dangquangminh@vnpro.org
    https://www.facebook.com/groups/vietprofessional/
Working...
X