Khám phá HTTP-based APIs với cURL
cURL là một công cụ command-line cho làm việc với các URLs. Từ command line Linux, bạn có thể gửi các yêu cầu HTTP
bằng cách sử dụng chương trình cURL. Trong khi cURL sử dụng các URLs, nó có thể trao đổi thông tin với các servers
sử dụng các giao thức bên cạnh HTTP, bao gồm FTP, SFTP, TFTP, Telnet và nhiều hơn. Bạn có thể sử dụng lệnh man curl
từ Linux command line để nhận cái nhìn sâu vào tất cả các tùy chọn khác nhau cURL hỗ trợ.
cURL không chỉ hạn chế tới Linux. Nó có sẵn trong nhiều hệ điều hành như macOS và Windows. Cho hướng dẫn cài đặt,
kiểm tra https://curl.se/docs/install.html.
Chúng ta bắt đầu khám phá của chúng ta về các HTTP APIs bằng cách sử dụng cURL với Cisco Meraki RESTful API. Cisco
Meraki là controller liên mạng đám mây cái giúp minh họa làm cách nào tương tác với dạng này của cơ sở hạ tầng
mạng.
Sử dụng phương thức HTTP GET để giành thông tin
Khi chúng ta khởi đầu với RESTful APIs, chúng ta sẽ bắt đầu với một yêu cầu HTTP GET đơn giản để giành tất cả
organizations từ API, hướng mục tiêu URL https://api.meraki.com/api/v1/organizations.
Organization là một khái niệm trừu tượng từ Cisco Meraki được tạo để hỗ trợ những người thuê cho cùng tài khoản.
Mỗi cái sẽ chứa các tài nguyên mạng khác nhau.
Trong code dưới, chúng ta sử dụng một phát biểu cURL để gọi Cisco Meraki URL và giành một danh sách tất cả các
organizations.
(1) URL là chung, nó được chia sẻ bởi tất cả khách hàng Cisco Meraki. Nó được cung cấp như Iaas, đề cập trong
học phần khác.
(2) Chúng ta đã không định nghĩa bất cứ hoạt động HTTP nào. Tuy nhiên, theo mặc định, cURL thực hiện một hoạt
động GET. Hành vi này có thể được điều chỉnh sử dụng cờ -X, như trong code tiếp theo. Bạn có thể thấy tất cả
sự phù hợp theo yêu cầu cURL thông qua tài liệu lệnh man cURL.
(3) Đối số -H, hay –header, được sử dụng để bao gồm các HTTP headers trong yêu cầu HTTP. Các HTTP headers
là các cặp key-value sử dụng để truyền metadata tới server, hữu dụng cho các thứ như xác thực.
(4) Cờ -L, hay –location, cho phép máy khách đi theo chuyển hướng phát hành bởi server.
The Cisco Meraki API token được sử dụng trong code trên lấy từ Cisco Developer Hub. Bạn có thể sử dụng một cái
như thế nếu nó vẫn hoạt động. Nếu không, một cái mới sẽ có khả năng có sẵn trên website này, cho khám phá API.
Cũng chú ý rằng trong URL trên, đường dẫn URL cơ sở chứa /v1/. Đây là một cách để chỉ ra phiên bản mục tiêu
của API này. Như với bất cứ ứng dụng khác, API có thể phát triển theo thời gian, thêm, thay đổi, và xóa tài nguyên.
Sử dụng phiên bản hóa API là một mô hình phổ biến để cung cấp một hành vi đoán được đối với các ứng dụng tiêu dùng,
mà không đối mặt các thay đổi phá vỡ (i.e truy cập một đường dẫn cái đã bị xóa). Trong các APIs khác, phiên bản
có thể được chỉ ra qua tham số truy vấn api_version. Theo cách này, đường dẫn URL không bị điều chỉnh, và chỉ
tham số truy vấn được gắn vào, sau đây là một ví dụ:
$ curl https://my_application.com/api/my_path?api_version=1.3
Đầu ra bị bỏ đi từ phát biểu cURL trong code trên là một từ đầu ra bị gói trên terminal, cái là khó để đọc. Thay vào,
như thể hiện trong code tiếp theo, bạn có thể tạo ống cho trả lời thành python3 -m json.tool để in đẹp response
object, làm nó con người đọc được hơn nhiều.