Khi thực hiện thử nghiệm API, dữ liệu JSON thường được sử dụng để truyền tải dữ liệu. Vì cURL là một công cụ dòng lệnh chuẩn cho thử nghiệm API, câu hỏi đặt ra là: Làm thế nào để gửi dữ liệu JSON bằng một lệnh cURL? Bài viết này sẽ hướng dẫn bạn qua quy trình gửi dữ liệu JSON bằng lệnh cURL.
cURL là gì?
cURL
(viết tắt của Client for URLs) là một công cụ dòng lệnh và thư viện để chuyển dữ liệu với các URL. Nó hỗ trợ một loạt các giao thức, bao gồm HTTP, HTTPS, FTP, FTPS, SCP, SFTP, LDAP, LDAPS, DICT, TELNET, FILE, và nhiều hơn nữa.

cURL
được sử dụng rộng rãi trong cộng đồng phát triển và viết kịch bản để thực hiện các yêu cầu HTTP, tải xuống hoặc tải lên tệp, và tương tác với các dịch vụ mạng khác nhau.
Cú pháp cơ bản để sử dụng cURL
là:
bashCopy code
curl [options] [URL...]
Dưới đây là một số tùy chọn phổ biến:
-X
: Chỉ định phương thức HTTP (GET, POST, PUT, DELETE, v.v.).-H
: Thêm tiêu đề tùy chỉnh vào yêu cầu.-d
: Gửi dữ liệu trong thân yêu cầu (sử dụng cho các yêu cầu POST).-o
: Ghi đầu ra vào một tệp.-O
: Tải xuống tệp và sử dụng tên tệp từ xa.-L
: Theo dõi các chuyển hướng.-u
: Cung cấp tên người dùng và mật khẩu để xác thực.
JSON là gì?
JSON, viết tắt của JavaScript Object Notation, là một định dạng trao đổi dữ liệu nhẹ. Nó dễ đọc và viết cho con người và dễ phân tích và tạo cho máy. Dữ liệu JSON được đại diện dưới dạng các cặp khóa-giá trị, tương tự như cách mà các đối tượng được đại diện trong nhiều ngôn ngữ lập trình.
Dữ liệu JSON bao gồm hai cấu trúc:
- Đối tượng: Một tập hợp không có thứ tự của các cặp khóa-giá trị được bao quanh bởi dấu ngoặc truy vấn
{}
. Mỗi khóa là một chuỗi, theo sau là dấu hai chấm, và sau đó là giá trị liên quan. - Mảng: Một danh sách có thứ tự của các giá trị được bao quanh bởi dấu ngoặc vuông
[]
. Các giá trị trong mảng có thể thuộc bất kỳ kiểu dữ liệu nào, bao gồm các đối tượng và mảng.
Đây là một ví dụ về dữ liệu JSON đơn giản:
{
"title": "Mắt cá gặp cá",
"author": "J.D. Salinger",
"publishedYear": 1951,
"isAvailable": true,
"genres": ["Hư cấu", "Tuổi trưởng thành"]
}
Trong ví dụ này:
- Đối tượng JSON đại diện cho một cuốn sách với các thuộc tính như
title
,author
,publishedYear
, vàisAvailable
. - Trường
genres
là một mảng các chuỗi đại diện cho thể loại của cuốn sách.
Yêu cầu POST là gì?
Một yêu cầu POST là một phương thức yêu cầu HTTP được sử dụng để gửi dữ liệu đến máy chủ để xử lý. Dữ liệu được bao gồm trong thân yêu cầu, thay vì trong URL. Các yêu cầu POST thường được sử dụng để gửi các biểu mẫu web, tạo các tài nguyên mới trên máy chủ và sửa đổi dữ liệu hiện có.

Sử dụng cURL để POST dữ liệu JSON
Để sử dụng nó để POST dữ liệu JSON, bạn có thể làm theo những bước sau với ví dụ JSON mà bạn cung cấp:
Dưới đây là cách bạn có thể sử dụng cURL
để thực hiện một yêu cầu POST với dữ liệu JSON này:
curl -X POST -H "Content-Type: application/json" -d @book.json http://example.com/api/books
Để tôi phân tích lệnh:
-X POST
: Chỉ định phương thức yêu cầu HTTP là POST.-H "Content-Type: application/json"
: Thiết lập tiêu đềContent-Type
để chỉ ra rằng thân yêu cầu là định dạng JSON.-d @book.json
: Gửi dữ liệu từ tệpbook.json
trong thân yêu cầu.http://example.com/api/books
: Thay thế điều này bằng URL thực tế nơi bạn muốn gửi yêu cầu POST.
Hãy chắc chắn thay thế http://example.com/api/books
bằng điểm cuối thực tế nơi bạn muốn gửi yêu cầu POST.
Nếu bạn không có dữ liệu trong một tệp và muốn gửi nó trực tiếp trong lệnh, bạn có thể làm điều gì đó như sau:
curl -X POST -H "Content-Type: application/json" -d '{"title":"Mắt cá gặp cá","author":"J.D. Salinger","publishedYear":1951,"isAvailable":true,"genres":["Hư cấu","Tuổi trưởng thành"]}' http://example.com/api/books
Lệnh này bao gồm dữ liệu JSON trực tiếp trong lệnh bằng cách sử dụng tùy chọn -d
. Một lần nữa, hãy thay thế URL bằng điểm cuối thực tế mà bạn đang làm việc.
Cách dễ dàng để gửi dữ liệu POST JSON với Apidog
Gửi dữ liệu JSON một cách dễ dàng là rất quan trọng để sử dụng API suôn sẻ. Trong khi những người dùng am hiểu công nghệ có thể xử lý lệnh cURL, thì nó có thể khó khăn hơn cho những người khác. Apidog giúp đỡ với một giao diện thân thiện với người dùng, giúp mọi người dễ dàng sử dụng.
Giao diện của Apidog đơn giản hóa toàn bộ quy trình. Người dùng có thể dễ dàng chọn phương thức HTTP và định dạng dữ liệu.

Apidog nổi bật với đầy đủ các tính năng, xử lý mọi thứ từ thiết kế API đến thử nghiệm. Nó là một công cụ một điểm dừng cho mọi thứ liên quan đến API, bất kể bạn đang tạo hay sửa đổi chúng.
Gửi JSON với Apidog là một điều dễ dàng. Chỉ cần chọn POST, đi đến tab Body, chọn JSON và nhập dữ liệu của bạn. Apidog bỏ qua các dòng lệnh phức tạp, cho phép người dùng nhập JSON trực tiếp. Nó hoàn hảo cho bất kỳ ai làm việc với API, bất kể nền tảng công nghệ hay kinh nghiệm với các công cụ như cURL.
