Nếu bạn là một nhà phát triển làm việc với APIs, có lẽ bạn đã sử dụng curl và httpie ở một thời điểm nào đó. Đây là hai công cụ dòng lệnh phổ biến để thực hiện các yêu cầu HTTP và tương tác với các dịch vụ web. Nhưng bạn có biết cách chuyển đổi giữa chúng một cách dễ dàng và hiệu quả không? Trong bài viết này, tôi sẽ chỉ cho bạn cách chuyển đổi các lệnh curl thành các lệnh httpie và ngược lại, sử dụng một công cụ đơn giản có tên là apidog. Bạn cũng sẽ học được một số mẹo và thủ thuật để làm cho việc kiểm tra API của bạn trở nên hiệu quả và thú vị hơn.
Curl và Httpie là gì?
Trước khi chúng ta lao vào quá trình chuyển đổi, hãy nhanh chóng xem lại curl và httpie là gì và tại sao chúng lại hữu ích.
Curl
Curl là một công cụ cổ điển đã xuất hiện từ năm 1997. Nó có nghĩa là "client URL" và cho phép bạn chuyển dữ liệu từ hoặc đến một máy chủ bằng nhiều giao thức khác nhau, chẳng hạn như HTTP, FTP, SMTP, v.v. Curl được hỗ trợ rộng rãi trên các nền tảng và ngôn ngữ khác nhau, và nó có nhiều tùy chọn và tính năng để tùy chỉnh các yêu cầu của bạn. Bạn có thể sử dụng curl để kiểm tra APIs, tải xuống tệp, tải lên dữ liệu và nhiều hơn nữa.
Dưới đây là một ví dụ về lệnh curl thực hiện một yêu cầu GET đến GitHub API và in ra các tiêu đề phản hồi:
curl -i https://api.github.com/users/octocat
Httpie
Httpie là một công cụ mới hơn được tạo ra vào năm 2012. Nó có nghĩa là “HTTPie: một công cụ CLI, giống cURL cho con người”. Httpie được thiết kế để trở thành một lựa chọn thân thiện với người dùng thay thế cho curl, với cú pháp đơn giản và biểu cảm hơn, đầu ra đầy màu sắc và mặc định thông minh. Httpie hỗ trợ HTTP/1.1, HTTP/2, và HTTPS, và nó có thể tự động xử lý JSON, biểu mẫu, và tải lên tệp.
Dưới đây là một ví dụ về lệnh httpie thực hiện cùng một yêu cầu GET như lệnh curl ở trên, nhưng với cú pháp và đầu ra dễ đọc hơn:
http -v https://api.github.com/users/octocat

Tại sao phải chuyển đổi giữa Curl và Httpie?
Bạn có thể đang tự hỏi tại sao bạn cần chuyển đổi giữa curl và httpie ngay từ đầu. Chẳng phải cả hai đều thực hiện cùng một công việc sao? Vâng, có và không. Trong khi curl và httpie có thể thực hiện các tác vụ tương tự, chúng có những điểm mạnh và điểm yếu khác nhau, và những trường hợp sử dụng khác nhau.
Dưới đây là một số lý do tại sao bạn có thể muốn chuyển đổi giữa curl và httpie:
- Bạn đang làm việc trên một dự án sử dụng cả lệnh curl và httpie, và bạn cần hiểu và sửa đổi chúng.
- Bạn đang theo dõi một hướng dẫn hoặc tài liệu sử dụng lệnh curl hoặc httpie, và bạn muốn thử chúng với công cụ khác.
- Bạn đang kiểm tra một API có các hành vi hoặc tính năng khác nhau tùy thuộc vào công cụ bạn sử dụng, và bạn muốn so sánh chúng.
- Bạn tò mò về những khác biệt và điểm tương đồng giữa curl và httpie, và bạn muốn tìm hiểu thêm về chúng.

Cách chuyển đổi giữa Curl và Httpie với Apidog?
Bây giờ bạn đã biết curl và httpie là gì và tại sao bạn có thể muốn chuyển đổi giữa chúng, hãy để tôi giới thiệu với bạn một công cụ có thể làm cho cuộc sống của bạn dễ dàng hơn: apidog.
Apidog là một công cụ dựa trên web cho phép bạn chuyển đổi lệnh curl thành lệnh httpie và ngược lại. Nó cũng cho phép bạn chạy các lệnh và xem kết quả theo thời gian thực. Apidog miễn phí và dễ sử dụng.
Dưới đây là cách sử dụng apidog để chuyển đổi giữa curl và httpie:
Bước 1: Dán hoặc gõ lệnh curl hoặc httpie của bạn vào ô nhập.
Bạn có thể dán một lệnh hiện có mà bạn đã sao chép từ đâu đó, hoặc gõ một lệnh mới từ đầu. Apidog sẽ tự động phát hiện loại lệnh và hiển thị biểu tượng tương ứng (curl hoặc httpie) ở bên trái của ô nhập.

Bước 2: Nhấp vào yêu cầu thực tế
Apidog sẽ chuyển đổi lệnh của bạn sang công cụ kia và hiển thị kết quả trong ô đầu ra.


Nếu bạn muốn kiểm tra lệnh đã chuyển đổi và xem phản hồi từ máy chủ, bạn có thể nhấp vào nút chạy hoặc nhấn Ctrl+R. Apidog sẽ thực hiện lệnh và hiển thị phản hồi trong bảng dưới. Bạn cũng có thể chuyển đổi giữa chế độ xem thô và định dạng của phản hồi bằng cách nhấp vào nút chuyển đổi hoặc nhấn Ctrl+F.
Mẹo và thủ thuật chuyển đổi giữa Curl và Httpie
Mặc dù apidog có thể xử lý hầu hết các lệnh curl và httpie thông thường, nhưng có một số trường hợp bạn có thể cần thực hiện một số điều chỉnh thủ công hoặc sử dụng một số tùy chọn bổ sung. Dưới đây là một số mẹo và thủ thuật để giúp bạn với điều đó:
- Nếu lệnh curl của bạn sử dụng tùy chọn
-dhoặc--datađể gửi dữ liệu trong thân yêu cầu, bạn có thể cần thêm tùy chọn--formvào lệnh httpie để chỉ ra rằng dữ liệu được mã hóa dạng biểu mẫu. Ví dụ:
# lệnh curl
curl -d "name=John&age=25" https://example.com/users
# lệnh httpie
http --form POST https://example.com/users name=John age=25
- Nếu lệnh curl của bạn sử dụng tùy chọn
-Hhoặc--headerđể thiết lập các tiêu đề tùy chỉnh, bạn có thể cần thêm một:sau tên tiêu đề trong lệnh httpie. Ví dụ:
# lệnh curl
curl -H "Authorization: Bearer abc123" https://example.com/secret
# lệnh httpie
http https://example.com/secret Authorization:"Bearer abc123"
- Nếu lệnh curl của bạn sử dụng tùy chọn
-uhoặc--userđể thiết lập thông tin xác thực xác thực cơ bản, bạn có thể sử dụng cùng tùy chọn trong lệnh httpie, hoặc sử dụng cú phápusername:password@trong URL. Ví dụ:
# lệnh curl
curl -u admin:secret https://example.com/admin
# lệnh httpie (tùy chọn 1)
http -u admin:secret https://example.com/admin
# lệnh httpie (tùy chọn 2)
http https://admin:secret@example.com/admin
- Nếu lệnh curl của bạn sử dụng tùy chọn
-Fhoặc--formđể tải lên tệp, bạn có thể sử dụng cùng tùy chọn trong lệnh httpie, hoặc sử dụng cú pháp@để chỉ định đường dẫn tệp. Ví dụ:
# lệnh curl
curl -F "image=@photo.jpg" https://example.com/upload
# lệnh httpie (tùy chọn 1)
http -f POST https://example.com/upload image@photo.jpg
# lệnh httpie (tùy chọn 2)
http POST https://example.com/upload image@/path/to/photo.jpg
- Nếu lệnh curl của bạn sử dụng tùy chọn
-Xhoặc--requestđể chỉ định phương thức HTTP, bạn có thể sử dụng cùng tùy chọn trong lệnh httpie, hoặc sử dụng tên phương thức làm đối số đầu tiên. Ví dụ:
# lệnh curl
curl -X PUT -d "status=active" https://example.com/users/1
# lệnh httpie (tùy chọn 1)
http -X PUT -d "status=active" https://example.com/users/1
# lệnh httpie (tùy chọn 2)
http PUT https://example.com/users/1 status=active
- Nếu lệnh curl của bạn sử dụng tùy chọn
-Ghoặc--getđể thêm dữ liệu vào URL dưới dạng các tham số truy vấn, bạn có thể sử dụng cùng tùy chọn trong lệnh httpie, hoặc sử dụng cú pháp==để chỉ ra các tham số truy vấn. Ví dụ:
# lệnh curl
curl -G -d "q=hello" https://example.com/search
# lệnh httpie (tùy chọn 1)
http -G -d "q=hello" https://example.com/search
# lệnh httpie (tùy chọn 2)
http https://example.com/search q==hello
- Nếu lệnh curl của bạn sử dụng tùy chọn
--data-urlencodeđể mã hóa dữ liệu trước khi gửi, bạn có thể sử dụng cùng tùy chọn trong lệnh httpie, hoặc sử dụng cú pháp:=để chỉ ra dữ liệu đã được mã hóa. Ví dụ:
# lệnh curl
curl --data-urlencode "message=Hello World!" https://example.com/echo
# lệnh httpie (tùy chọn 1)
http --data-urlencode "message=Hello World!" https://example.com/echo
# lệnh httpie (tùy chọn 2)
http https://example.com/echo message:="Hello World!"
- Nếu lệnh curl của bạn sử dụng tùy chọn
--data-binaryđể gửi dữ liệu nhị phân thô, bạn có thể sử dụng cùng tùy chọn trong lệnh httpie, hoặc sử dụng cú pháp@để chỉ định dữ liệu nhị phân. Ví dụ:
# lệnh curl
curl --data-binary "@data.bin" https://example.com/binary
# lệnh httpie (tùy chọn 1)
http --data-binary "@data.bin" https://example.com/binary
# lệnh httpie (tùy chọn 2)
http https://example.com/binary @data.bin
- Nếu lệnh curl của bạn sử dụng tùy chọn
-ohoặc--outputđể lưu phản hồi vào một tệp, bạn có thể sử dụng cùng tùy chọn trong lệnh httpie, hoặc sử dụng toán tử>để chuyển hướng đầu ra. Ví dụ:
# lệnh curl
curl -o response.json https://example.com/data
# lệnh httpie (tùy chọn 1)
http -o response.json https://example.com/data
# lệnh httpie (tùy chọn 2)
http https://example.com/binary > response.bin
Lợi ích của việc chuyển đổi giữa Curl và Httpie
Đến giờ, bạn nên đã có ý tưởng rõ ràng về cách chuyển đổi giữa các lệnh curl và httpie bằng cách sử dụng apidog. Nhưng lợi ích của việc làm như vậy là gì? Dưới đây là một số lợi thế của việc có khả năng sử dụng cả hai công cụ:
- Bạn có thể chọn công cụ phù hợp hơn với sở thích và nhu cầu của bạn. Một số người thích curl vì tính linh hoạt và khả năng tương thích của nó, trong khi người khác thích httpie vì sự đơn giản và dễ đọc của nó. Bằng cách chuyển đổi giữa chúng, bạn có thể tận hưởng những điều tốt nhất của cả hai thế giới.
- Bạn có thể học các kỹ năng và kỹ thuật mới từ cả hai công cụ. Curl và httpie có những tính năng và tùy chọn khác nhau có thể giúp bạn với các tác vụ và tình huống khác nhau. Bằng cách chuyển đổi giữa chúng, bạn có thể khám phá cách làm mới và nâng cao kiến thức và năng lực của mình.
- Bạn có thể tránh được các lỗi và lỗi do sử dụng công cụ hoặc cú pháp sai. Curl và httpie có những hành vi và kỳ vọng khác nhau khi xử lý dữ liệu, tiêu đề, xác thực, tệp, v.v. Bằng cách chuyển đổi giữa chúng, bạn có thể đảm bảo rằng bạn đang sử dụng công cụ và cú pháp chính xác cho tình huống của mình và tránh các vấn đề tiềm ẩn.
Kết luận
Trong bài viết này, tôi đã chỉ cho bạn cách chuyển đổi giữa các lệnh curl và httpie bằng cách sử dụng apidog, một công cụ dựa trên web có thể chuyển đổi và chạy các lệnh curl và httpie. Tôi cũng đã cho bạn một số mẹo và thủ thuật để giúp bạn với quá trình chuyển đổi, và một số lợi ích của việc có thể sử dụng cả hai công cụ.
Cảm ơn bạn đã đọc và chúc bạn lập trình vui vẻ!
