Apidog

Nền tảng phát triển API hợp tác tất cả trong một

Thiết kế API

Tài liệu API

Gỡ lỗi API

Giả lập API

Kiểm thử API tự động

Làm chủ Axios API Interceptors: Hướng dẫn toàn diện

Khám phá sức mạnh của các bộ lọc Axios API để quản lý yêu cầu HTTP hiệu quả. Tìm hiểu cách thiết lập và sử dụng bộ lọc, cũng như tìm hiểu lợi ích của Apidog cho việc kiểm tra và quản lý API. Tải Apidog miễn phí hôm nay!

Minh Triết

Minh Triết

Updated on tháng 11 29, 2024

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!

button

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.

Trang web chính thức của Axios

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.

button

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.

button

Bước 1: Mở Apidog và tạo một yêu cầu mới.

Apidog

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.

Apidog

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.

Apidog

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ì

  1. 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.
  2. 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.
  3. 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

  1. 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.
  2. 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ồ.
  3. 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ẻ!

button