Nếu bạn là một nhà phát triển web, bạn có thể đã biết tầm quan trọng của việc giao tiếp với các API. API là các giao diện cho phép các ứng dụng khác nhau trao đổi dữ liệu và thực hiện các hành động. Một trong những cách phổ biến nhất để tương tác với API là sử dụng các yêu cầu HTTP. Các yêu cầu HTTP là các thông điệp tuân theo một định dạng và giao thức cụ thể, và chúng có thể được sử dụng để gửi và nhận dữ liệu từ một máy chủ.
Có nhiều loại yêu cầu HTTP khác nhau, chẳng hạn như GET, POST, PUT, PATCH và DELETE. Mỗi loại có một mục đích và ý nghĩa khác nhau. Trong bài viết blog này, chúng ta sẽ tập trung vào yêu cầu DELETE, được sử dụng để xóa một tài nguyên khỏi máy chủ. Chúng ta sẽ học cách thực hiện yêu cầu DELETE trong Node.js, một môi trường chạy JavaScript phổ biến cho phép bạn chạy mã JavaScript trên phía máy chủ.
Vào cuối bài viết blog này, bạn sẽ có một hiểu biết vững chắc về cách thực hiện yêu cầu DELETE trong Node.js và cách làm việc với các API một cách hiệu quả. Hãy bắt đầu thôi!
Yêu cầu DELETE là gì và khi nào nên sử dụng nó
Một yêu cầu DELETE là một trong các phương thức HTTP được sử dụng để giao tiếp với các API. Như tên gọi gợi ý, một yêu cầu DELETE được sử dụng để xóa một tài nguyên khỏi máy chủ. Một tài nguyên có thể là bất cứ thứ gì được xác định bằng một URL duy nhất, chẳng hạn như một người dùng, một bài viết, một bình luận, một tệp, v.v.
Một yêu cầu DELETE thường được gửi kèm với một URL xác định tài nguyên cần xóa. Ví dụ, nếu bạn muốn xóa một người dùng có id là 123 từ một API, bạn có thể gửi một yêu cầu DELETE đến URL https://example.com/api/users/123. Máy chủ sẽ xử lý yêu cầu và trả về một phản hồi cho biết liệu việc xóa có thành công hay không.
Một yêu cầu DELETE thường được sử dụng khi bạn muốn loại bỏ một thứ không còn cần thiết hoặc liên quan. Ví dụ, bạn có thể sử dụng yêu cầu DELETE để:
- Xóa tài khoản người dùng không hoạt động hoặc là spam
- Xóa một bài viết hoặc một bình luận không phù hợp hoặc xúc phạm
- Xóa một tệp đã lỗi thời hoặc bị hỏng
- Xóa một bản ghi bị trùng lặp hoặc sai lệch
Tuy nhiên, bạn cần cẩn thận khi sử dụng yêu cầu DELETE, vì đây là một thao tác phá hủy không thể hoàn tác. Khi bạn xóa một tài nguyên, nó sẽ biến mất mãi mãi. Do đó, bạn luôn phải đảm bảo rằng bạn có quyền hạn và sự cho phép hợp lý để xóa một tài nguyên, và rằng bạn có một bản sao lưu hoặc cơ chế xác nhận nếu có điều gì đó sai.
Node.Js là gì?
Node.js là một môi trường chạy JavaScript cho phép bạn chạy mã JavaScript bên ngoài trình duyệt web. Node.js dựa trên động cơ JavaScript V8 của Google Chrome, và được sử dụng để xây dựng các ứng dụng web, đặc biệt là các ứng dụng với dữ liệu lớn và thời gian thực. Node.js cũng có một thư viện lớn các mô-đun và gói mà bạn có thể sử dụng để thêm chức năng cho các dự án của mình.

Một số lợi ích của Node.js là:
- Nó nhanh và mở rộng, nhờ vào tính bất đồng bộ và hướng sự kiện của nó.
- Nó đa nền tảng và mã nguồn mở, có nghĩa là bạn có thể chạy nó trên nhiều hệ điều hành khác nhau và đóng góp vào sự phát triển của nó.
- Nó nhất quán và thống nhất, vì bạn có thể sử dụng cùng một ngôn ngữ cho cả phần front-end và back-end của ứng dụng web của mình.
Cách thực hiện một yêu cầu DELETE trong Node.js bằng cách sử dụng mô-đun http tích hợp
Một trong những cách để thực hiện một yêu cầu DELETE trong Node.js là bằng cách sử dụng mô-đun http tích hợp. Mô-đun http là một mô-đun cốt lõi cung cấp chức năng thấp cho việc làm việc với các yêu cầu và phản hồi HTTP. Để sử dụng mô-đun http, bạn cần yêu cầu nó trong mã của bạn, như sau:
const http = require('http');
Để thực hiện một yêu cầu DELETE bằng mô-đun http, bạn cần sử dụng phương thức http.request(). Phương thức này nhận hai đối số: một đối tượng tùy chọn và một hàm callback. Đối tượng tùy chọn chứa chi tiết của yêu cầu, chẳng hạn như phương thức, tên miền, cổng, đường dẫn, tiêu đề, v.v. Hàm callback sẽ được thực thi khi yêu cầu hoàn tất, và nó nhận một đối tượng phản hồi làm tham số.
Ví dụ, hãy giả sử chúng ta muốn thực hiện một yêu cầu DELETE đến URL https://jsonplaceholder.typicode.com/posts/1, đây là một API giả trả về dữ liệu giả để thử nghiệm. Chúng ta có thể sử dụng đoạn mã sau:
const http = require('http');
// Định nghĩa đối tượng tùy chọn
const options = {
method: 'DELETE', // Xác định phương thức HTTP
hostname: 'jsonplaceholder.typicode.com', // Xác định tên miền
port: 443, // Xác định cổng (443 cho HTTPS)
path: '/posts/1', // Xác định đường dẫn
};
// Thực hiện yêu cầu
const req = http.request(options, (res) => {
// Xử lý phản hồi
console.log('Mã trạng thái:', res.statusCode); // In mã trạng thái
console.log('Tiêu đề:', res.headers); // In tiêu đề
// Lấy dữ liệu từ phản hồi
let data = '';
res.on('data', (chunk) => {
data += chunk; // Nối các phần lại
});
// Khi phản hồi hoàn tất, in dữ liệu
res.on('end', () => {
console.log('Dữ liệu:', data); // In dữ liệu
});
});
// Xử lý bất kỳ lỗi nào
req.on('error', (err) => {
console.error('Lỗi:', err.message); // In thông báo lỗi
});
// Kết thúc yêu cầu
req.end();
Cách thực hiện một yêu cầu DELETE trong Node.js bằng cách sử dụng thư viện Axios
Một cách khác để thực hiện một yêu cầu DELETE trong Node.js là bằng cách sử dụng thư viện axios. Axios là một thư viện phổ biến và dễ sử dụng cho phép bạn thực hiện các yêu cầu HTTP từ Node.js hoặc trình duyệt. Axios có nhiều tính năng và tùy chọn giúp làm việc với các API trở nên đơn giản và thuận tiện hơn. Để sử dụng axios, bạn cần cài đặt nó trong dự án của bạn bằng cách sử dụng npm hoặc yarn, như sau:
npm install axios
# hoặc
yarn add axios
Để thực hiện một yêu cầu DELETE bằng Axios, bạn cần sử dụng phương thức axios.delete(). Phương thức này nhận hai đối số: một URL và một đối tượng cấu hình tùy chọn. URL giống như cái bạn sẽ sử dụng cho mô-đun http, và đối tượng cấu hình có thể chứa các tham số và tiêu đề bổ sung cho yêu cầu. Phương thức axios.delete() trả về một promise, mà bạn có thể xử lý bằng các phương thức then() và catch().
Ví dụ, hãy sử dụng cùng một URL như trước, https://jsonplaceholder.typicode.com/posts/1, và thực hiện một yêu cầu DELETE bằng axios. Chúng ta có thể sử dụng đoạn mã sau:
const axios = require('axios');
// Thực hiện yêu cầu
axios
.delete('https://jsonplaceholder.typicode.com/posts/1')
.then((res) => {
// Xử lý phản hồi
console.log('Mã trạng thái:', res.status); // In mã trạng thái
console.log('Tiêu đề:', res.headers); // In tiêu đề
console.log('Dữ liệu:', res.data); // In dữ liệu
})
.catch((err) => {
// Xử lý bất kỳ lỗi nào
console.error('Lỗi:', err.message); // In thông báo lỗi
});
Nếu bạn chạy đoạn mã này, bạn sẽ thấy điều gì đó tương tự như thế này trong bảng điều khiển:
Mã trạng thái: 200
Tiêu đề: {
date: 'Tue, 05 Mar 2024 12:45:47 GMT',
'content-type': 'application/json; charset=utf-8',
'content-length': '2',
connection: 'close',
'x-powered-by': 'Express',
'x-ratelimit-limit': '1000',
'x-ratelimit-remaining': '998',
'x-ratelimit-reset': '1614938747',
vary: 'Origin, Accept-Encoding',
'access-control-allow-credentials': 'true',
'cache-control': 'no-cache',
pragma: 'no-cache',
expires: '-1',
'access-control-expose-headers': 'X-Json-Placeholder-User-Id',
'x-json-placeholder-user-id': '1',
etag: 'W/"2-vyGp6PvFo4RvsFtPoIWeCReyIC8"',
via: '1.1 vegur',
'cf-cache-status': 'DYNAMIC',
'cf-request-id': '08a9f9c9f40000e6b4b3f0a000000001',
'expect-ct': 'max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"',
'report-to': '{"group":"cf-nel","endpoints":[{"url":"https:\\/\\/a.nel.cloudflare.com\\/report?s=Q%2BZL0U%2FJ9%2F5i2coL0wvYcQLLmZvIML2Zzjwqk3Iw0%2B3U%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F
Cách thực hiện một yêu cầu DELETE trong Node.js bằng cách sử dụng Apidog
Apidog là một công cụ API đơn giản hóa quy trình tạo và thử nghiệm các API trong Node.js. Nó cho phép bạn định nghĩa các điểm cuối API của bạn bằng cách sử dụng cú pháp khai báo, và nó tự động tạo tài liệu, xác thực và kiểm tra API của bạn.
Dưới đây là cách bạn có thể sử dụng Apidog để kiểm tra yêu cầu DELETE của bạn:
- Mở Apidog và tạo một yêu cầu mới.

2. Đặt phương thức yêu cầu thành HTTP DELETE.

3. Nhập URL của tài nguyên bạn muốn cập nhật. Thêm bất kỳ tiêu đề hoặc tham số bổ sung nào bạn muốn bao gồm sau đó nhấn nút “Gửi” để gửi yêu cầu.

4. Xác minh rằng phản hồi là như bạn mong đợi.

Kết luận
Trong bài viết blog này, chúng ta đã học cách thực hiện yêu cầu DELETE trong Node.js bằng ba cách khác nhau: mô-đun http tích hợp, thư viện Axios và thư viện Apidog. Chúng ta đã thấy những lợi ích và bất lợi của mỗi phương pháp, và cách xử lý lỗi và phản hồi từ một yêu cầu DELETE. Chúng ta cũng đã học một số mẹo và thực hành tốt nhất cho việc thực hiện các yêu cầu DELETE trong Node.js và làm việc hiệu quả với các API.