Chào các nhà phát triển thân mến! Hôm nay, chúng ta sẽ khám phá thế giới của các interceptor API Axios. Nếu bạn đang làm việc với các API, đặc biệt là trong lĩnh vực phát triển web, bạn biết rằng việc quản lý các yêu cầu HTTP một cách hiệu quả là rất quan trọng. Đó chính là lúc các interceptor API Axios trở nên hữu ích. Trong bài viết này, chúng ta sẽ khám phá các interceptor API Axios là gì, tại sao bạn cần chúng, và cách sử dụng chúng một cách hiệu quả. Hơn nữa, chúng tôi sẽ giới thiệu cho bạn Apidog, một công cụ tuyệt vời để kiểm tra và quản lý API mà bạn có thể tải miễn phí. Vậy thì, chúng ta hãy bắt đầu!
Các Interceptor API Axios là gì?
Trước khi chúng ta đi sâu vào các chi tiết cụ thể, hãy làm rõ các interceptor API Axios là gì. Nói một cách đơn giản, các interceptor Axios là một tính năng của thư viện Axios cho phép bạn chặn và sửa đổi các yêu cầu HTTP và phản hồi một cách toàn cục trước khi chúng được xử lý bởi then hoặc catch.
Hãy hình dung bạn có một nhân viên bảo vệ ở cửa ra vào của ứng dụng của bạn, kiểm tra và điều chỉnh từng yêu cầu và phản hồi đi qua. Đó chính là những gì mà các interceptor thực hiện. Chúng cung cấp một cách tập trung để thêm logic tùy chỉnh vào các yêu cầu HTTP và các phản hồi.

Tại sao sử dụng các interceptor API Axios?
Có thể bạn đang tự hỏi, tại sao phải bận tâm với các interceptor khi bạn có thể xử lý trực tiếp các yêu cầu và phản hồi trong mã của mình? Vâng, đây là một vài lý do thuyết phục:
Xử lý lỗi toàn cục: Các interceptor cho phép bạn thực hiện việc xử lý lỗi toàn cục. Thay vì viết mã xử lý lỗi cho mỗi yêu cầu một cách riêng lẻ, bạn có thể định nghĩa nó một lần trong một interceptor và tái sử dụng nó trên toàn ứng dụng của bạn.
Quản lý token: Quản lý các token xác thực có thể gây rối. Với các interceptor, bạn có thể tự động gắn token vào các yêu cầu của bạn và xử lý việc hết hạn token một cách liền mạch.
Ghi chép và Gỡ lỗi: Các interceptor cung cấp một cách tuyệt vời để ghi chép các yêu cầu và phản hồi cho các mục đích gỡ lỗi. Bạn có thể ghi lại thông tin quan trọng về mỗi yêu cầu và phản hồi, giúp bạn chẩn đoán các vấn đề nhanh hơn.
Chỉnh sửa yêu cầu: Đôi khi, bạn cần chỉnh sửa các yêu cầu trước khi chúng được gửi đi. Các interceptor cho phép bạn thêm tiêu đề, chuyển đổi dữ liệu yêu cầu, và nhiều hơn nữa, tất cả chỉ trong một chỗ.
Chuyển đổi phản hồi: Tương tự, bạn có thể chuyển đổi các phản hồi trước khi chúng đến với logic ứng dụng của bạn. Điều này có thể hữu ích để chuẩn hóa dữ liệu, xử lý các định dạng phản hồi khác nhau, v.v.
Giờ đây, khi chúng ta đã hiểu tầm quan trọng của các interceptor API Axios, hãy cùng chuyển sang cách cấu hình chúng.
Cấu hình các interceptor API Axios
Để bắt đầu, bạn cần cài đặt Axios trong dự án của bạn. Nếu bạn chưa làm điều đó, bạn có thể cài đặt nó bằng cách sử dụng npm hoặc yarn:
npm install axios
hoặc
yarn add axios
Khi bạn đã cài đặt Axios, bạn có thể tạo một instance của Axios và thiết lập các interceptor của bạn. Hãy cùng nhau đi qua quy trình này từng bước.
Tạo một Instance của Axios
Đầu tiên, hãy tạo một instance của Axios. Instance này sẽ cho phép chúng ta thiết lập các interceptor và thực hiện các yêu cầu HTTP.
import axios from 'axios';
// Tạo một instance của Axios
const api = axios.create({
baseURL: 'https://api.example.com',
timeout: 1000,
headers: {'X-Custom-Header': 'foobar'}
});
Thêm các Interceptor yêu cầu
Các interceptor yêu cầu được sử dụng để sửa đổi các yêu cầu trước khi chúng được gửi đi. Ví dụ, bạn có thể thêm các token xác thực hoặc tiêu đề tùy chỉnh vào mỗi yêu cầu.
// Thêm một interceptor yêu cầu
api.interceptors.request.use(
(config) => {
// Làm điều gì đó trước khi yêu cầu được gửi đi
config.headers.Authorization = `Bearer ${localStorage.getItem('token')}`;
return config;
},
(error) => {
// Làm điều gì đó với lỗi yêu cầu
return Promise.reject(error);
}
);
Thêm các Interceptor phản hồi
Các interceptor phản hồi được sử dụng để sửa đổi các phản hồi trước khi chúng đến với logic ứng dụng của bạn. Chẳng hạn, bạn có thể xử lý các phản hồi lỗi toàn cầu hoặc chuyển đổi dữ liệu.
// Thêm một interceptor phản hồi
api.interceptors.response.use(
(response) => {
// Làm điều gì đó với dữ liệu phản hồi
return response;
},
(error) => {
// Làm điều gì đó với lỗi phản hồi
if (error.response.status === 401) {
// Xử lý truy cập không hợp lệ (ví dụ, chuyển hướng đến đăng nhập)
window.location.href = '/login';
}
return Promise.reject(error);
}
);
Kết hợp các Interceptor yêu cầu và phản hồi
Bạn có thể kết hợp cả hai interceptor yêu cầu và phản hồi để tạo ra một cơ chế xử lý API mạnh mẽ.
api.interceptors.request.use(
(config) => {
config.headers.Authorization = `Bearer ${localStorage.getItem('token')}`;
return config;
},
(error) => {
return Promise.reject(error);
}
);
api.interceptors.response.use(
(response) => {
return response;
},
(error) => {
if (error.response.status === 401) {
window.location.href = '/login';
}
return Promise.reject(error);
}
);
Những trường hợp sử dụng thực tiễn của các interceptor API Axios
Hãy cùng khám phá một số trường hợp sử dụng thực tiễn mà các interceptor API Axios có thể làm cho cuộc sống của bạn dễ dàng hơn.
Trường hợp 1: Cơ chế làm mới token
Trong nhiều ứng dụng, bạn cần xử lý việc hết hạn token và làm mới token một cách liền mạch. Các interceptor có thể giúp bạn đạt được điều này.
api.interceptors.response.use(
(response) => {
return response;
},
async (error) => {
const originalRequest = error.config;
if (error.response.status === 401 && !originalRequest._retry) {
originalRequest._retry = true;
const refreshToken = localStorage.getItem('refreshToken');
const res = await api.post('/auth/refresh-token', { token: refreshToken });
if (res.status === 200) {
localStorage.setItem('token', res.data.token);
api.defaults.headers.common['Authorization'] = `Bearer ${res.data.token}`;
return api(originalRequest);
}
}
return Promise.reject(error);
}
);
Trường hợp 2: Xử lý lỗi tập trung
Thay vì xử lý lỗi trong mỗi cuộc gọi API, bạn có thể tập trung xử lý lỗi trong một interceptor.
api.interceptors.response.use(
(response) => {
return response;
},
(error) => {
if (error.response) {
switch (error.response.status) {
case 400:
alert('Yêu cầu không hợp lệ');
break;
case 401:
alert('Không được phép');
break;
case 404:
alert('Không tìm thấy');
break;
default:
alert('Đã xảy ra lỗi');
}
}
return Promise.reject(error);
}
);
Trường hợp 3: Ghi chép các yêu cầu và phản hồi
Vì mục đích gỡ lỗi, bạn có thể muốn ghi lại mỗi yêu cầu và phản hồi.
api.interceptors.request.use(
(config) => {
console.log('Yêu cầu:', config);
return config;
},
(error) => {
return Promise.reject(error);
}
);
api.interceptors.response.use(
(response) => {
console.log('Phản hồi:', response);
return response;
},
(error) => {
console.log('Lỗi phản hồi:', error.response);
return Promise.reject(error);
}
);
Giới thiệu về Apidog: Người bạn đồng hành API của bạn
Trong khi các interceptor API Axios rất mạnh mẽ, việc kiểm tra và quản lý các API vẫn có thể gặp khó khăn. Đó là lúc Apidog xuất hiện. Apidog là một công cụ tuyệt vời giúp bạn thiết kế, kiểm tra và tài liệu hóa các API của bạn một cách dễ dàng.
Tại sao chọn Apidog?
- Giao diện thân thiện với người dùng: Apidog cung cấp một giao diện sạch sẽ và trực quan giúp việc kiểm tra API trở nên dễ dàng.
- Kiểm tra toàn diện: Với Apidog, bạn có thể tạo và chạy các kịch bản kiểm tra phức tạp, đảm bảo các API của bạn mạnh mẽ và đáng tin cậy.
- Sự hợp tác: Apidog hỗ trợ hợp tác nhóm, cho phép nhiều nhà phát triển làm việc trên các dự án API cùng một lúc.
- Miễn phí sử dụng: Tốt nhất là Apidog miễn phí để tải và sử dụng. Dù bạn là một nhà phát triển độc lập hay là một phần của một đội ngũ lớn, Apidog đều phù hợp với bạn.
Apidog và các Interceptor Axios
Bằng cách sử dụng các interceptor Axios, Apidog có thể tự động ghi lại và phân tích các yêu cầu và phản hồi API, cung cấp những thông tin quý giá và giúp bạn xác định và giải quyết các vấn đề một cách hiệu quả hơn.
Bước 1: Mở Apidog và chọn yêu cầu mới

Bước 2: Nhập URL của điểm cuối API mà bạn muốn gửi yêu cầu, nhập bất kỳ tiêu đề hoặc tham số chuỗi truy vấn nào bạn muốn bao gồm trong yêu cầu, sau đó nhấp vào "Thiết kế" để chuyển sang giao diện thiết kế của Apidog.

Bước 3: Chọn "Tạo mã khách" để tạo mã của bạn.

Bước 4: Sao chép mã Axios đã tạo và dán vào dự án của bạn.

Sử dụng Apidog để gửi các yêu cầu HTTP
Apidog cung cấp một số tính năng nâng cao giúp tăng cường khả năng kiểm tra các yêu cầu HTTP. Những tính năng này cho phép bạn tùy chỉnh các yêu cầu và xử lý các tình huống phức tạp hơn một cách dễ dàng.
Bước 1: Mở Apidog và tạo một yêu cầu mới.

Bước 2: 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: Điền 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 thân yêu cầu.

Các thực hành tốt nhất để sử dụng các interceptor Axios
Trong khi axios
các interceptor là những công cụ mạnh mẽ, điều quan trọng là tuân thủ các thực hành tốt nhất để đảm bảo mã sạch, dễ bảo trì và tránh những cạm bẫy phổ biến.
Mẹo để có mã interceptor sạch và dễ bảo trì
- Phân tách các mối quan tâm: Chia logic interceptor của bạn thành các hàm hoặc module riêng biệt dựa trên trách nhiệm của chúng. Điều này thúc đẩy khả năng tái sử dụng mã và giúp việc bảo trì và cập nhật các tính năng cụ thể dễ dàng hơn.
- Sử dụng các mẫu middleware: Áp dụng các mẫu middleware khi cấu trúc các interceptor của bạn. Cách tiếp cận này cho phép bạn xâu chuỗi nhiều interceptor cùng nhau, thúc đẩy mã modular và có thể kết hợp.
- Tận dụng lập trình hàm: Các interceptor Axios rất thích hợp với các nguyên tắc lập trình hàm. Sử dụng các hàm thuần túy, hàm bậc cao và cấu trúc dữ liệu không thay đổi để tạo ra mã dễ dự đoán và kiểm tra hơn.
Tránh các cạm bẫy phổ biến
- Tránh sửa đổi các đối tượng yêu cầu/ phản hồi gốc: Luôn trả về một đối tượng mới hoặc phiên bản sao của đối tượng yêu cầu hoặc phản hồi gốc. Việc sửa đổi các đối tượng gốc có thể dẫn đến hành vi không mong muốn và các vấn đề khó gỡ lỗi.
- Xử lý lỗi một cách phù hợp: Đảm bảo rằng các lỗi được truyền đạt hoặc xử lý đúng cách trong các interceptor của bạn. Việc không làm như vậy có thể dẫn đến các từ chối hứa chưa xử lý và các thông điệp lỗi mơ hồ.
- Chú ý đến hiệu suất: Trong khi các interceptor rất mạnh mẽ, việc sử dụng chúng quá mức hoặc giới thiệu logic phức tạp có thể ảnh hưởng tiêu cực đến hiệu suất. Hãy cố gắng đảm bảo sự đơn giản và hiệu quả trong các triển khai interceptor của bạn.
Kết luận
Các interceptor API Axios là một công cụ vô giá để quản lý các yêu cầu và phản hồi HTTP trong các ứng dụng của bạn. Chúng cung cấp một cách tập trung để xử lý lỗi, quản lý token, ghi dữ liệu, và nhiều hơn nữa. Bằng cách thiết lập các interceptor API Axios, bạn có thể tối ưu hóa các tương tác API và tạo ra một mã nguồn mạnh mẽ và dễ bảo trì hơn.
Hơn nữa, Apidog bổ sung cho Axios bằng cách cung cấp một nền tảng mạnh mẽ cho việc kiểm tra và quản lý API. Dù bạn đang làm việc trên một dự án nhỏ hay một ứng dụng quy mô lớn, Apidog có thể giúp bạn đảm bảo rằng các API của bạn đáng tin cậy và được tài liệu rõ ràng.
Vậy bạn còn chờ gì nữa? Hãy bắt đầu triển khai các interceptor API Axios trong các dự án của bạn và tải Apidog miễn phí để nâng cao khả năng API của bạn lên một tầm cao mới. Chúc bạn lập trình vui vẻ!