Gần đây, tôi đã nhận được một thử thách mã thời gian để tạo một back-end Ruby on Rails hoạt động như một API RESTful. Ngoài tất cả các yêu cầu kỹ thuật, tôi được cho biết rằng cách duy nhất để người dùng tương tác với API này là bằng curl
Trước thử thách này, tôi chưa bao giờ nhìn thấy hay sử dụng curl
. Vì vậy, tôi cần nhanh chóng nghiên cứu và làm quen với curl
để đảm bảo rằng API của tôi sẽ hoạt động như mong đợi
Đơn giản nhất, curl
là một “công cụ dòng lệnh và thư viện để truyền dữ liệu bằng URL” [tài liệu cURL]. cURL là viết tắt của “Thư viện yêu cầu URL khách hàng. ” Nó miễn phí, mã nguồn mở và mã nguồn có thể được tìm thấy trên GitHub/curl
Bạn nên lưu ý rằng cURL với tư cách là một tổ chức thực sự sản xuất hai sản phẩm, curl
và libcurl
. Đầu tiên là công cụ dòng lệnh mà tôi sẽ khám phá chi tiết hơn và libcurl
là thư viện phát triển để sử dụng trong hoặc bởi các chương trình khác
Làm cách nào để sử dụng CURL?
Tôi chắc chắn sẽ không thể trình bày mọi phương pháp sử dụng curl
vì có khoảng 170 biến thể của lệnh curl
. Như đã nói, tôi sẽ cung cấp một số ví dụ hữu ích về cách sử dụng curl
từ dòng lệnh
NHẬN yêu cầu
Để thực hiện một yêu cầu GET đơn giản, tất cả những gì bạn cần làm là sử dụng curl
+ URL của trang web. Ví dụ, curl
2 sẽ cho kết quả như sau
Xin lưu ý rằng HTML được trả về từ yêu cầu GET này
Bạn cũng có thể chuyển các mục bổ sung cùng với yêu cầu NHẬN của mình. Ví dụ: nếu một trang web có nội dung được bảo vệ thì curl
cho phép bạn chuyển thông tin đăng nhập xác thực. Để làm như vậy sử dụng cú pháp sau
curl
4
“TÊN NGƯỜI DÙNG” phải được thay thế bằng tên người dùng thực của bạn trong dấu ngoặc kép. Nếu bạn không muốn đưa mật khẩu của mình vào lịch sử dòng lệnh, bạn chỉ cần sử dụng yêu cầu sau. curl
5 và bạn sẽ được nhắc nhập thông tin đăng nhập của mình
ĐĂNG yêu cầu
Trong trường hợp thử thách mã của tôi, điều quan trọng là API RESTful của tôi đã xử lý thông tin được gửi tới nó một cách chính xác. Để ĐĂNG lên trang web/API, hãy sử dụng cú pháp sau
curl
6
Cờ curl
7 ngụ ý một yêu cầu POST, và do đó bạn có thể bỏ cờ curl
8. URL bạn đang đăng đi sau dữ liệu bạn đang gửi
Xóa yêu cầu
Nếu API của bạn tuân theo các quy ước RESTful, thì bạn có thể xóa một phiên bản cụ thể bằng cách gửi yêu cầu DELETE đến đúng tuyến đường/. Tôi. Ví dụ: nếu tôi có API lịch trình và tôi muốn xóa một trong những lịch trình đó, tôi sẽ sử dụng lệnh sau. curl
9 trong đó curl
0 là ID của một lịch trình hiện có
Thay đổi loại nội dung
Dữ liệu tiêu chuẩn được gửi bằng curl
được gửi bằng kiểu dữ liệu curl
2. Mục đích chính của loại yêu cầu này là gửi danh sách các cặp tên/giá trị đến máy chủ. Mặc dù đây là cài đặt mặc định của curl
nhưng bạn không bị giới hạn trong việc gửi dữ liệu theo cách này. Đây cũng không phải là cách hiệu quả nhất để gửi dữ liệu và bạn sẽ không muốn sử dụng cách mặc định nếu bạn đang gửi một lượng lớn dữ liệu
Các trình duyệt cũng phải hỗ trợ gửi dữ liệu dưới dạng curl
4. Điều này yêu cầu một số thông tin bổ sung, chủ yếu là các tiêu đề MIME [Tiện ích mở rộng thư Internet đa năng]
Ngoài ra, bạn có thể chọn gửi thông tin dưới dạng JSON. Để làm như vậy, chúng tôi sẽ sử dụng cờ curl
5 để cho biết chúng tôi đang thêm tiêu đề. Một ví dụ về yêu cầu POST được gửi dưới dạng JSON sẽ giống như sau
curl
6
curl
POST ở trên sẽ tạo một lịch trình mới cho API RESTful tưởng tượng của chúng ta, trong đó tên của lịch trình mới sẽ là. “Tên lịch trình mẫu”
Một số điều thú vị và thú vị bạn có thể làm với curl
- Nhận thông tin thời tiết.
Bằng cách chạy lệnh.curl
9 và thêm vị trí mong muốn, bạn sẽ nhận được dự báo vị trí mong muốn.
Ví dụ về báo cáo thời tiết được trả lại sau khi yêu cầu cuộn tròn được gửi tới.
curl
0- Kiểm tra trạng thái của trang web.
Bằng cách chạy lệnh.curl
1 bạn sẽ có thể xem mã phản hồi HTTP từ URL được yêu cầu.
Mã phản hồi mẫu được trả về từ yêu cầu HTTP trung bình
- Tìm địa chỉ IP bên ngoài của bạn.
Bạn có thể định vị địa chỉ IP bên ngoài của mình bằng cách chạy lệnh.
______02
Địa chỉ IP bên ngoài của bạn khác với địa chỉ IP cục bộ của bạn.
Tài nguyênĐịa chỉ IP bên ngoài hoặc công cộng được sử dụng trên toàn bộ Internet để định vị các hệ thống và thiết bị máy tính. Địa chỉ IP cục bộ hoặc nội bộ được sử dụng bên trong mạng riêng để định vị các máy tính và thiết bị được kết nối với mạng đó
- Đâu là sự khác biệt giữa địa chỉ IP bên ngoài và địa chỉ IP cục bộ?
Nếu bạn quan tâm nhiều hơn đến curl
, bạn có thể tìm thêm thông tin bằng cách tham khảo tài liệu về curl