Lệnh curl: Cách để thực hiện các yêu cầu REST API trong Linux

Tác giả: VPS chính hãng 10 tháng 01, 2024

REST API (hay RESTful API), trong đó REST là viết tắt của Representational State Transfer – một kiểu kiến trúc để viết API (giao diện lập trình ứng dụng). Đây là một API tuân thủ các quy ước kiến trúc REST, sử dụng trong việc giao tiếp giữa client và máy chủ. REST API cho phép người dùng gửi yêu cầu đến máy chủ để truy xuất hoặc sửa đổi dữ liệu. Trong REST API, các yêu cầu được gửi đến một điểm cuối hoặc URL cụ thể và máy chủ sẽ trả về phản hồi. Phản hồi có thể là một tin nhắn hoặc một cấu trúc dữ liệu phức tạp. Trong hướng dẫn này, chúng ta sẽ tìm hiểu cách thực hiện các yêu cầu REST API bằng lệnh curl. Hãy cùng theo dõi!

Lệnh curl là gì?

curl là một tiện ích dòng lệnh. Công cụ CLI này tạo điều kiện trao đổi dữ liệu giữa thiết bị và máy chủ thông qua thiết bị đầu cuối. Bằng cách sử dụng curl, bạn có thể thực hiện các yêu cầu mạng và gửi hoặc nhận dữ liệu trực tiếp từ dấu nhắc lệnh mà không cần GUI. Curl cũng có nhiều tùy chọn khác nhau cho phép người dùng thêm tiêu đề tùy chỉnh, chỉ định thời gian chờ và chi tiết xác thực,… Sự đơn giản của việc sử dụng curl từ dòng lệnh thu hút rất nhiều nhà phát triển sử dụng nó làm công cụ kiểm tra API và dịch vụ. Ngoài ra, việc hỗ trợ giao thức HTTP giúp thuận tiện cho việc kiểm tra API REST.

Curl bao gồm hai thành phần, thư viện phía máy khách libcurl và công cụ dòng lệnh Curl. Curl ban đầu được thiết kế để cho phép người dùng Linux IRC tự động hóa các tác vụ thông thường. Tuy nhiên, nó hiện đã có sẵn cho hầu hết các hệ điều hành và hoạt động tương tự trên các nền tảng.

Làm cách nào để thực hiện các yêu cầu REST API bằng lệnh Curl?

REST API sử dụng mã trạng thái HTTP để hiển thị lỗi hay thành công của yêu cầu API. Ví dụ: để hiểu rõ hơn, mã trạng thái “200 OK” có nghĩa là yêu cầu thành công và “404 Not Found” thể hiện tài nguyên được yêu cầu nhưng không được tìm thấy. Để thực hiện yêu cầu REST API, người dùng có thể sử dụng một công cụ như lệnh curl. Các phương thức HTTP phổ biến nhất được sử dụng trong REST API được cung cấp bên dưới:

  • GET: Đề cập đến việc trích xuất một tài nguyên.
  • POST: Thể hiện việc tạo một tài nguyên.
  • PUT: Cập nhật tài nguyên.
  • DELETE: Xóa tài nguyên.

Cài đặt curl

Curl thường được cài đặt sẵn trên Linux Ubuntu và các bản phân phối Linux khác ngay cả khi bạn mua VPS Linux Việt Nam. Để xem Curl đã được cài đặt chưa, hãy chạy lệnh Curl với tùy chọn  -V. Cài đặt cục bộ có thể không khớp với phiên bản mới nhất, nhưng mọi bản phát hành gần đây đều phù hợp.

curl -V

Nếu cần, có thể cài đặt curl bằng cách sử dụng cài đặt apt. Đảm bảo hệ thống được cập nhật đầu tiên.

sudo apt install curl

Dưới đây là một số ví dụ về cách bạn có thể sử dụng lệnh Curl để thực hiện các loại yêu cầu REST API khác nhau.

Thực hiện một yêu cầu GET

Để truy xuất tài nguyên, bạn có thể sử dụng lệnh curl với “X” bằng cách chỉ định “URL”. Để thực hiện việc này, hãy chạy đoạn mã dưới đây bằng cách cung cấp liên kết “www.vpschinhhang.com”:

$ curl -X GET www.vpschinhhang.com
Chạy lệnh curl với GET để thực hiện yêu cầu truy xuất

Chạy lệnh curl với GET để thực hiện yêu cầu truy xuất

Kết quả đầu ra cho thấy yêu cầu “GET” được thực hiện tới liên kết “www.vpschinhhang.com” để truy xuất tài nguyên.

Lọc dữ liệu được truy xuất

Bạn cũng có thể bao gồm các tham số truy vấn trong URL để lọc dữ liệu bạn truy xuất. Nó sẽ nhận được dữ liệu sau khi lọc:

$ curl -X GET https:/www.vpschinhhang.com?param1=value1&param2=value2
Lọc dữ liệu bằng cách sử dụng tham số truy vấn

Lọc dữ liệu bằng cách sử dụng tham số truy vấn

Đầu ra trả về dữ liệu đã lọc “[1] 3308” bằng cách sử dụng tham số truy vấn.

Thực hiện một yêu cầu POST

Để thực hiện yêu cầu POST để tạo tài nguyên, lệnh curl được sử dụng bằng cách cung cấp liên kết “www.vpschinhhang.com”. Hơn nữa, tùy chọn “d” được sử dụng để biểu thị dữ liệu có giá trị khóa và tùy chọn “H” đề cập đến tiêu đề được gửi:

$ curl -X POST https://www.vpschinhhang.com -d '{"key": "value"}' -H 'Content-Type: application/json'
Yêu cầu POST được thực hiện với URL cụ thể

Yêu cầu POST được thực hiện với URL cụ thể

Kết quả đầu ra cho thấy yêu cầu “POST” đã được thực hiện thành công tới một URL cụ thể.

Thực hiện yêu cầu PUT

Để thực hiện yêu cầu PUT để cập nhật tài nguyên; lệnh curl được sử dụng bằng cách đề cập đến liên kết “www.vpschinhhang.com”. Ngoài ra, người dùng có thể gửi dữ liệu bằng tùy chọn “d” bằng cách cung cấp tiêu đề thông qua tùy chọn “H”:

$ curl -X PUT https://www.vpschinhhang.com -d '{"key": "value"}' -H 'Content-Type: application/json'

Kết quả đầu ra sẽ cho thấy yêu cầu “PUT” đã được thực hiện thành công đối với liên kết “www.vpschinhhang.com”.

Thực hiện yêu cầu DELETE

Để thực hiện yêu cầu xóa tài nguyên, ngoài việc sử dụng lệnh rmdir thì dùng yêu cầu DELETE trong lệnh curl để xóa tài nguyên cùng với tùy chọn “X” cũng là một cách. Thực hiện lệnh sau bằng cách chỉ định tới liên kết “www.vpschinhhang.com”:

Yêu cầu DELETE giúp xóa tài nguyên với tùy chọn X

Yêu cầu DELETE giúp xóa tài nguyên với tùy chọn X

Xem và thay đổi tiêu đề bằng lệnh curl

Trong cách sử dụng thông thường, Curl chỉ hiển thị thông tin phù hợp nhất chứ không hiển thị toàn bộ yêu cầu và phản hồi HTTP. Để xem tất cả thông tin, bao gồm cả tiêu đề HTTP, hãy thêm tùy chọn -v vào bất kỳ lệnh curl nào.

curl -v example.com

Bất kỳ tiêu đề HTTP gửi đi nào trong curl đều có thể được sửa đổi bằng tùy chọn -H. Ví dụ trước đã minh họa cách sử dụng tùy chọn này khi đặt loại nội dung. Tuy nhiên, -H cũng cho phép người dùng sửa đổi bất kỳ trường nào trong tiêu đề. Ví dụ sau đây minh họa cách tắt trường user-agent trong tiêu đề. Khi tiêu đề được xem xét ở chế độ verbose, trường này không còn xuất hiện nữa.

curl -H "User-Agent:" http://example.com -v

Đó là tất cả các ví dụ cơ bản nhất để thực hiện các yêu cầu REST API trong Linux bằng lệnh curl.

Linux cung cấp lệnh curl để thực hiện các yêu cầu REST API tới máy chủ nhằm truy xuất hoặc sửa đổi dữ liệu. Các phương thức HTTP khác nhau bao gồm GET để truy xuất, POST để tạo, PUT để cập nhật và DELETE để xóa tài nguyên. Hướng dẫn này đã giải thích các phương pháp phổ biến nhất để thực hiện các yêu cầu REST API. Chúc các bạn thành công!