Như là những lập trình viên, việc hiểu cách gửi các yêu cầu HTTP là một kỹ năng quan trọng. Bài viết này sẽ tập trung vào Axios, một thư viện JavaScript phổ biến, và hướng dẫn bạn qua quá trình thực hiện các yêu cầu POST với dữ liệu trong body. Dù bạn đang xây dựng một ứng dụng web, tương tác với các API, hay xử lý các đơn đăng ký, Axios giúp đơn giản hóa công việc giao tiếp với các máy chủ.
Axios là gì?
Axios là một thư viện JavaScript phổ biến cho phép bạn gửi yêu cầu HTTP từ trình duyệt hoặc Node.js. Nó cung cấp một giao diện dễ sử dụng cho việc thực hiện các yêu cầu AJAX, bao gồm việc xử lý các header yêu cầu và phản hồi, thời gian chờ, và nhiều hơn nữa.

Cách cài đặt Axios?
Để cài đặt Axios, bạn có thể sử dụng npm (Node Package Manager) hoặc yarn, là các trình quản lý gói cho JavaScript. Để cài đặt Axios bằng npm, bạn có thể chạy lệnh sau trong terminal:
npm install axios
Nếu bạn thích sử dụng yarn, bạn có thể chạy lệnh sau thay vào đó:
yarn add axios
Ngay khi Axios được cài đặt, bạn có thể nhập nó vào dự án của mình bằng cách sử dụng câu lệnh require
hoặc import
. Ví dụ, nếu bạn đang sử dụng Node.js, bạn có thể nhập Axios như sau:
const axios = require('axios');
Nếu bạn đang làm việc với một dự án JavaScript dựa trên trình duyệt, bạn có thể sử dụng câu lệnh import
:
import axios from 'axios';
Yêu cầu POST và Body
Trong phát triển web, việc gửi dữ liệu là một nghệ thuật, và các yêu cầu POST chính là những nét vẽ. Khác với các yêu cầu GET, vốn lấy thông tin, các yêu cầu POST xuất sắc trong việc gửi và truyền tải dữ liệu. Hiểu tại sao dữ liệu lại được bao bọc trong body của một yêu cầu POST là chìa khóa để xây dựng các ứng dụng năng động và an toàn.
Yêu cầu POST được sử dụng để làm gì?
Trong HTTP (Giao thức truyền tải siêu văn bản), POST là một trong những phương pháp được sử dụng để gửi dữ liệu đến một máy chủ. Khác với phương thức GET, được sử dụng để lấy dữ liệu từ một máy chủ, phương thức POST được sử dụng để gửi dữ liệu để được xử lý bởi máy chủ. Dữ liệu này có thể ở nhiều định dạng khác nhau, chẳng hạn như JSON, dữ liệu form, XML, hoặc văn bản thuần.
Các yêu cầu POST thường được sử dụng khi bạn muốn tạo hoặc cập nhật một tài nguyên trên máy chủ. Ví dụ, khi gửi một biểu mẫu trên một trang web, dữ liệu biểu mẫu thường được gửi đến máy chủ bằng một yêu cầu POST.

Tại sao chúng ta cần thêm body vào các yêu cầu POST?
Khi thực hiện một yêu cầu POST, dữ liệu thường được gửi trong body của yêu cầu. Body chứa thông tin cần được xử lý bởi máy chủ. Nếu không có body, máy chủ sẽ không nhận được dữ liệu nào để làm việc.
Thêm body vào một yêu cầu POST cho phép bạn gửi thông tin hoặc dữ liệu bổ sung đến máy chủ. Điều này có thể bao gồm đầu vào của người dùng, dữ liệu biểu mẫu, các đối tượng JSON, hoặc bất kỳ dữ liệu nào khác cần được xử lý bởi máy chủ.
Các loại dữ liệu có sẵn với body POST
Body của một yêu cầu POST có thể chứa dữ liệu ở nhiều định dạng khác nhau, tùy thuộc vào yêu cầu của máy chủ. Một số loại dữ liệu phổ biến có thể được sử dụng trong body của một yêu cầu POST bao gồm:
JSON (JavaScript Object Notation): JSON là một định dạng trao đổi dữ liệu nhẹ, dễ đọc và viết cho con người, và dễ phân tích và tạo cho máy móc. Nó thường được sử dụng để gửi dữ liệu có cấu trúc giữa một máy chủ và một khách hàng.
Dữ liệu Form: Dữ liệu form là một định dạng được sử dụng để gửi dữ liệu từ một biểu mẫu HTML đến một máy chủ. Nó bao gồm các cặp khóa-giá trị, trong đó các khóa là tên của các trường trong biểu mẫu, và các giá trị là dữ liệu do người dùng nhập vào.
Văn bản thuần: Văn bản thuần là một kiểu dữ liệu đơn giản và không định dạng có thể được gửi trong body của một yêu cầu POST. Nó hữu ích cho việc gửi các thông điệp hoặc dữ liệu dựa trên văn bản đơn giản mà không yêu cầu định dạng đặc biệt nào.
Cách thêm body vào yêu cầu POST với Axios
Để thêm body vào một yêu cầu POST sử dụng Axios, bạn có thể làm theo các bước sau:
Tạo một instance Axios:
const axiosInstance = axios.create({ baseURL: 'https://api.example.com' });
Thực hiện yêu cầu POST với một body:
axiosInstance.post('/endpoint', { data: 'dữ liệu ví dụ' })
.then((response) => {
console.log(response.data);
})
.catch((error) => {
console.error(error);
});
Tôi đã loại bỏ dấu phẩy thừa sau thuộc tính đối tượng "data: 'dữ liệu ví dụ'" bên trong phương thức post
. Giờ đây, mã đã được định dạng đúng.
Trong ví dụ này, chúng ta đang thực hiện một yêu cầu POST đến URL /endpoint
với một body chứa trường data
. Trường data
có thể là bất kỳ dữ liệu nào bạn muốn gửi đến máy chủ.
Quản lý phản hồi: Trong callback .then
, bạn có thể truy cập dữ liệu phản hồi bằng cách sử dụng thuộc tính response.data
. Bạn có thể thực hiện bất kỳ thao tác cần thiết nào với dữ liệu, như hiển thị nó trên trang hoặc lưu trữ nó trong một biến.
Nếu có lỗi xảy ra trong quá trình gửi yêu cầu, callback .catch
sẽ được thực thi, và đối tượng lỗi sẽ được truyền như một đối số. Bạn có thể xử lý lỗi phù hợp, chẳng hạn như hiển thị một thông báo lỗi cho người dùng hoặc ghi lại lỗi để phục vụ cho việc gỡ lỗi.
Apidog: Cách dễ dàng hơn để gửi các yêu cầu POST với dữ liệu trong body
Một trong những thách thức mà các lập trình viên thường phải đối mặt là việc tạo thủ công các đoạn mã để gửi yêu cầu POST, đặc biệt khi làm việc với các API phức tạp. Đây là lúc các công cụ như Apidog đến để cứu trợ, cung cấp một giao diện trực quan để hợp lý hóa quá trình này.
Dưới đây là cái nhìn gần hơn về cách Apidog có thể giúp công việc gửi yêu cầu POST với dữ liệu trong body trở nên đơn giản hơn rất nhiều.

Tại sao sử dụng Apidog?
Giao diện thân thiện với người dùng: Apidog cung cấp một giao diện web thân thiện cho phép bạn nhập chi tiết API và xác định các tham số và dữ liệu body một cách dễ dàng.
Thế hệ mã: Apidog xuất sắc trong việc tạo ra các đoạn mã cho nhiều ngôn ngữ lập trình khác nhau, bao gồm JavaScript với Axios. Điều này loại bỏ cần thiết phải viết mã sẵn, giảm khả năng xảy ra lỗi.
Hiệu quả về thời gian: Bằng cách tự động hóa quá trình tạo mã, Apidog giảm đáng kể thời gian và công sức cần thiết để thiết lập các yêu cầu HTTP. Điều này đặc biệt có lợi khi làm việc với các API có tài liệu mở rộng.
Sử dụng Apidog cho các yêu cầu POST với dữ liệu trong body
Hãy cùng đi qua một hướng dẫn ngắn về cách sử dụng Apidog để thực hiện một yêu cầu POST và tạo mã Axios cho một yêu cầu POST:
YÊU CẦU POST VỚI BODY
Bước 1: Mở Apidog và tạo một yêu cầu mới.
- Bắt đầu Apidog và chọn Yêu cầu Mới

Bước 2: Nhập API
- Tìm hoặc nhập thủ công các chi tiết API cho yêu cầu POST mà bạn muốn thực hiện.

Bước 3: Nhập Các tham số và Dữ liệu Body
- Điền vào các tham số cần thiết và bất kỳ dữ liệu nào bạn muốn bao gồm trong body yêu cầu.

THẾ HỆ MÃ
Bước 1: Mở Apidog và tạo một yêu cầu mới.
- Bắt đầu Apidog và chọn Yêu cầu Mới

Bước 2: Nhập API
- Tìm hoặc nhập thủ công các chi tiết API cho yêu cầu POST mà bạn muốn thực hiện.

Bước 3: Tạo mã
- Nhấp vào nút "Tạo Mã".

Bước 4: Chọn Axios làm loại đoạn mã:
- Chọn "Axios" làm loại đoạn mã. Apidog sẽ tạo mã Axios cho yêu cầu POST của bạn. Sao chép mã và tích hợp nó vào dự án của bạn.

Lợi ích của Apidog trong hành động
Hãy xem bạn có một API endpoint (https://petstore-demo.apidog.com/pet) yêu cầu một yêu cầu POST với các tham số và dữ liệu body cụ thể. Dưới đây là cách Apidog đơn giản hóa quá trình và nâng cao quy trình phát triển của bạn:
var axios = require('axios');
var qs = require('qs');
var data = qs.stringify({
'name': 'Hello Kitty',
'status': 'sold'
});
var config = {
method: 'post',
url: 'https://petstore-demo.apidog.com/pet',
headers: {
'User-Agent': 'Apidog/1.0.0 (https://apidog.com)'
},
data : data
};
axios(config)
.then(function (response) {
console.log(JSON.stringify(response.data));
})
.catch(function (error) {
console.log(error);
});
Hãy cùng phân tích quá trình:
axios
vàqs
imports: Mã yêu cầu các thư viện Axios và qs, được sử dụng để thực hiện các yêu cầu HTTP và xử lý các chuỗi truy vấn, tương ứng.data
variable: Dữ liệu trong body yêu cầu được chỉ định bằng cách sử dụng phương thứcqs.stringify
, chuyển đổi đối tượng đã cung cấp thành một chuỗi được mã hóa URL.config
object: Đối tượng này chứa cấu hình cho yêu cầu Axios. Nó bao gồm phương thức HTTP ('post'), URL, các header (bao gồm cả header User-Agent), và dữ liệu sẽ được gửi trong body yêu cầu.- Yêu cầu Axios: Hàm
axios(config)
khởi động yêu cầu POST. Khối.then
xử lý phản hồi thành công, ghi lại dữ liệu phản hồi, trong khi khối.catch
ghi lại bất kỳ lỗi nào có thể xảy ra trong quá trình gửi yêu cầu.
Sử dụng Apidog có thể tiết kiệm thời gian và công sức của bạn khi làm việc với các yêu cầu POST. Nó đơn giản hóa quy trình tạo mã Axios cần thiết, cho phép bạn tập trung vào logic và chức năng của ứng dụng của bạn.
Kết luận
Trong bài viết này, chúng ta đã học cách thêm một body vào một yêu cầu POST sử dụng Axios. Chúng tôi đã khám phá tầm quan trọng của việc thêm body vào các yêu cầu POST và các loại dữ liệu khác nhau có thể được sử dụng trong body.
Chúng tôi cũng đã cung cấp một hướng dẫn từng bước về cách thêm một body vào yêu cầu POST sử dụng Axios, cũng như một giới thiệu về Apidog, một công cụ giúp dễ dàng hơn để tạo mã Axios cho các yêu cầu POST.
Bằng cách hiểu cách thêm một body vào một yêu cầu POST với Axios, bạn có thể nâng cao các ứng dụng web của mình bằng cách gửi và nhận dữ liệu từ một máy chủ. Với sự giúp đỡ của Axios và các công cụ như Apidog, bạn có thể hợp lý hóa quá trình thực hiện các yêu cầu POST và tập trung vào việc xây dựng các ứng dụng mạnh mẽ và hiệu quả.