วิธีใช้ Axios Interceptors เพื่อการจัดการ API ที่แข็งแกร่ง

สำรวจพลังของ Axios interceptors เพื่อ API ที่มีประสิทธิภาพ ปรับคำขอ จัดการตอบสนอง แก้ไขข้อผิดพลาด และใช้เทคนิคขั้นสูง เช่น ลองใหม่

อาชว์

อาชว์

4 June 2025

วิธีใช้ Axios Interceptors เพื่อการจัดการ API ที่แข็งแกร่ง

สวัสดีครับ! มาดำดิ่งสู่โลกที่น่าตื่นเต้นของ Axios และการโต้ตอบ API กันเถอะ เตรียมพร้อมสำหรับการเดินทางสนทนาที่เต็มไปด้วยข้อมูลเชิงลึกที่จำเป็นและเคล็ดลับที่เป็นประโยชน์

บทนำสู่ Axios และการโต้ตอบ API

ในภูมิทัศน์ของการพัฒนาเว็บสมัยใหม่ที่เปลี่ยนแปลงตลอดเวลา APIs ได้กลายเป็นกระดูกสันหลังของเกือบทุกแอปพลิเคชันที่เราใช้ อินเทอร์เฟซอันทรงพลังเหล่านี้ช่วยให้ส่วนประกอบซอฟต์แวร์ต่างๆ สื่อสารและแลกเปลี่ยนข้อมูลได้อย่างราบรื่น อย่างไรก็ตาม การจัดการการโต้ตอบ API อาจเป็นงานที่น่ากลัว โดยเฉพาะอย่างยิ่งเมื่อต้องรับมือกับคำขอและการตอบสนองที่ซับซ้อน พบกับ Axios ตัวเปลี่ยนเกมสำหรับนักพัฒนา!

Axios คืออะไร?

Axios เป็นไลบรารี JavaScript ยอดนิยมที่ช่วยลดความซับซ้อนของกระบวนการสร้างคำขอ HTTP จากเบราว์เซอร์หรือสภาพแวดล้อม Node.js มันมีอินเทอร์เฟซที่สะอาดและสอดคล้องกันสำหรับการโต้ตอบกับ APIs การจัดการข้อมูลการตอบสนอง และการจัดการข้อผิดพลาด ด้วย Axios คุณสามารถส่ง คำขอ HTTP แบบอะซิงโครนัสไปยัง REST endpoints และดำเนินการ CRUD operations ได้อย่างง่ายดายด้วยโค้ดเพียงไม่กี่บรรทัด

บทบาทของ APIs ในการพัฒนาสมัยใหม่

APIs ได้กลายเป็นกระดูกสันหลังของการพัฒนาเว็บสมัยใหม่ ทำให้แอปพลิเคชันสามารถใช้ประโยชน์จากบริการภายนอก ผสานรวมกับแพลตฟอร์มของบุคคลที่สาม และแลกเปลี่ยนข้อมูลได้อย่างราบรื่น เมื่อแอปพลิเคชันมีความซับซ้อนและเชื่อมต่อถึงกันมากขึ้น การจัดการ API ที่มีประสิทธิภาพจึงมีความสำคัญอย่างยิ่งในการรับประกันการสื่อสารที่ราบรื่น ความสามารถในการปรับขนาด และความปลอดภัย

ความสำคัญของการจัดการ API ที่มีประสิทธิภาพ

การจัดการ API ที่มีประสิทธิภาพเป็นสิ่งจำเป็นสำหรับการรักษาประสิทธิภาพ ความน่าเชื่อถือ และความปลอดภัยของแอปพลิเคชันของคุณ หากไม่มีการจัดการที่เหมาะสม คุณอาจพบปัญหาต่างๆ เช่น รูปแบบข้อมูลที่ไม่สอดคล้องกัน ฝันร้ายในการจัดการข้อผิดพลาด และช่องโหว่ด้านความปลอดภัย นี่คือที่มาของ Axios และคุณสมบัติอันทรงพลัง เช่น interceptors

ทำความเข้าใจเกี่ยวกับ Axios Interceptors

Interceptors คือฟังก์ชัน middleware ใน Axios ที่ช่วยให้คุณสกัดกั้นคำขอหรือการตอบสนองก่อนที่จะถูกจัดการโดยตรรกะของแอปพลิเคชันหลัก เครื่องมืออันทรงพลังเหล่านี้มอบวิธีที่สง่างามในการรวมศูนย์ฟังก์ชันทั่วไปและปรับปรุงการโต้ตอบ API ของคุณ

คำจำกัดความและวัตถุประสงค์

axios interceptors คือฟังก์ชันที่ถูกดำเนินการโดยอัตโนมัติก่อนที่จะส่งคำขอหรือหลังจากได้รับการตอบสนอง พวกเขาทำหน้าที่เป็น hooks ช่วยให้คุณปรับเปลี่ยนคำขอหรือการตอบสนอง จัดการข้อผิดพลาด และดำเนินการเพิ่มเติมตามต้องการ

Interceptors สามารถปรับปรุงการโต้ตอบ API ของคุณได้อย่างไร

Interceptors มอบประโยชน์หลายประการที่สามารถปรับปรุงการโต้ตอบ API ของคุณได้อย่างมาก พวกเขาช่วยให้คุณ:

  1. รวมศูนย์ฟังก์ชันทั่วไป: แทนที่จะทำซ้ำโค้ดเดียวกันในหลายๆ API calls คุณสามารถรวมตรรกะที่ใช้ร่วมกันไว้ใน interceptors ส่งเสริมการนำโค้ดกลับมาใช้ใหม่และความสามารถในการบำรุงรักษา
  2. ปรับปรุงความปลอดภัย: Interceptors สามารถใช้เพื่อเพิ่มส่วนหัวการตรวจสอบสิทธิ์โดยอัตโนมัติ จัดการการรีเฟรชโทเค็น หรือใช้มาตรการรักษาความปลอดภัยอื่นๆ
  3. จัดการข้อผิดพลาดอย่างสม่ำเสมอ: ด้วยการรวมศูนย์การจัดการข้อผิดพลาดใน interceptors คุณสามารถรับประกันการจัดการข้อผิดพลาดที่สอดคล้องกันในแอปพลิเคชันของคุณ
  4. แปลงข้อมูล: Interceptors ช่วยให้คุณแปลงข้อมูลคำขอหรือการตอบสนองก่อนที่จะเข้าถึงตรรกะของแอปพลิเคชันของคุณ รับประกันรูปแบบข้อมูลที่สอดคล้องกัน
  5. ใช้การบันทึกและการตรวจสอบ: Interceptors มอบสถานที่ที่สะดวกในการบันทึกคำขอและการตอบสนอง ทำให้สามารถตรวจสอบและแก้ไขข้อบกพร่องได้ดีขึ้น

เจาะลึก Axios Request Interceptors

Request interceptors ใน axios เป็นเครื่องมืออันทรงพลังที่ช่วยให้คุณปรับเปลี่ยนคำขอก่อนที่จะเข้าสู่เซิร์ฟเวอร์ ด้วยการใช้ประโยชน์จาก request interceptors คุณสามารถเพิ่มส่วนหัว แปลงข้อมูล หรือดำเนินการอื่นๆ ที่จำเป็นก่อนที่จะส่งคำขอ

การปรับเปลี่ยนคำขอก่อนที่จะเข้าสู่เซิร์ฟเวอร์

Request interceptors จะถูกดำเนินการก่อนที่จะส่งคำขอ Axios ไปยังเซิร์ฟเวอร์ ซึ่งหมายความว่าคุณสามารถสกัดกั้นและปรับเปลี่ยนการกำหนดค่าคำขอ รวมถึงส่วนหัว พารามิเตอร์ และข้อมูลคำขอ ความยืดหยุ่นนี้ช่วยให้คุณปรับคำขอของคุณให้เข้ากับข้อกำหนด API เฉพาะ หรือใช้ข้อกังวลข้าม

กรณีการใช้งาน: การเพิ่มส่วนหัว การแปลงข้อมูล

กรณีการใช้งานทั่วไปสำหรับ request interceptors คือการเพิ่มส่วนหัวการตรวจสอบสิทธิ์ลงในคำขอของคุณ แทนที่จะทำซ้ำการกำหนดค่าส่วนหัวเดียวกันในหลายๆ API calls คุณสามารถรวมศูนย์ตรรกะนี้ไว้ใน request interceptor เพื่อให้มั่นใจถึงการจัดการการตรวจสอบสิทธิ์ที่สอดคล้องกัน

axios.interceptors.request.use(config => {
  config.headers.Authorization = `Bearer ${token}`;
  return config;
});

อีกกรณีการใช้งานที่มีประสิทธิภาพคือการแปลงข้อมูลคำขอก่อนที่จะส่งไปยังเซิร์ฟเวอร์ ซึ่งอาจเป็นประโยชน์อย่างยิ่งเมื่อทำงานกับ APIs ที่ต้องการรูปแบบข้อมูลเฉพาะ หรือเมื่อคุณต้องการดำเนินการจัดการข้อมูลก่อนที่จะส่งคำขอ

axios.interceptors.request.use(config => {
  if (config.data instanceof FormData) {
    // จัดการวัตถุ FormData
    return config;
  }
  
  // แปลงข้อมูลคำขอเป็นรูปแบบที่ต้องการ
  config.data = JSON.stringify(config.data);
  return config;
});

การเรียนรู้ Axios Response Interceptors

ในขณะที่ request interceptors ช่วยให้คุณปรับเปลี่ยนคำขอก่อนที่จะถูกส่ง response interceptors ช่วยให้คุณจัดการการตอบสนองจากเซิร์ฟเวอร์ เครื่องมืออันทรงพลังเหล่านี้สามารถแปลงข้อมูลการตอบสนอง จัดการข้อผิดพลาด หรือดำเนินการอื่นๆ ที่จำเป็นก่อนที่การตอบสนองจะเข้าถึงตรรกะของแอปพลิเคชันของคุณ

การจัดการการตอบสนองจากเซิร์ฟเวอร์

Response interceptors จะถูกดำเนินการหลังจากได้รับ axios response จากเซิร์ฟเวอร์ ซึ่งหมายความว่าคุณสามารถสกัดกั้นและปรับเปลี่ยนข้อมูลการตอบสนอง จัดการข้อผิดพลาด หรือดำเนินการอื่นๆ ที่จำเป็นก่อนที่จะส่งการตอบสนองไปยังตรรกะของแอปพลิเคชันของคุณ

กรณีการใช้งาน: การแปลงข้อมูล การจัดการข้อผิดพลาด

กรณีการใช้งานทั่วไปสำหรับ response interceptors คือการแปลงข้อมูลการตอบสนองเป็นรูปแบบที่สะดวกกว่าสำหรับแอปพลิเคชันของคุณ ซึ่งอาจรวมถึงการแยกวิเคราะห์การตอบสนอง JSON การแปลงรูปแบบวันที่ หรือดำเนินการจัดการข้อมูลอื่นๆ ที่จำเป็น

axios.interceptors.response.use(response => {
  // แปลงข้อมูลการตอบสนอง
  const transformedData = transformResponseData(response.data);
  response.data = transformedData;
  return response;
});

อีกกรณีการใช้งานที่มีประสิทธิภาพคือการจัดการข้อผิดพลาดแบบรวมศูนย์ ด้วยการใช้ตรรกะการจัดการข้อผิดพลาดใน response interceptor คุณสามารถรับประกันการจัดการข้อผิดพลาดที่สอดคล้องกันในแอปพลิเคชันทั้งหมดของคุณ

axios.interceptors.response.use(
  response => response,
  error => {
    // จัดการการตอบสนองข้อผิดพลาด
    if (error.response) {
      // คำขอถูกสร้างขึ้นและเซิร์ฟเวอร์ตอบสนองด้วยรหัสสถานะ
      // ที่อยู่นอกช่วง 2xx
      console.error(`Error: ${error.response.status}`);
    } else if (error.request) {
      // คำขอถูกสร้างขึ้นแต่ไม่ได้รับการตอบสนอง
      console.error('Error: No response received');
    } else {
      // บางสิ่งเกิดขึ้นในการตั้งค่าคำขอที่ทำให้เกิดข้อผิดพลาด
      console.error('Error:', error.message);
    }

    return Promise.reject(error);
  }
);

เทคนิคขั้นสูงด้วย Axios Interceptors

ในขณะที่ interceptors มอบฟังก์ชันการทำงานอันทรงพลังตั้งแต่เริ่มต้น มีเทคนิคขั้นสูงที่คุณสามารถใช้เพื่อปรับปรุงการโต้ตอบ API ของคุณและปรับปรุงตรรกะของแอปพลิเคชันของคุณ

การใช้การจัดการข้อผิดพลาดส่วนกลาง

เทคนิคขั้นสูงอย่างหนึ่งคือการใช้การจัดการข้อผิดพลาดส่วนกลางใน interceptors ของคุณ ด้วยการรวมศูนย์ตรรกะการจัดการข้อผิดพลาด คุณสามารถรับประกันการจัดการข้อผิดพลาดที่สอดคล้องกันในแอปพลิเคชันทั้งหมดของคุณ ทำให้การจัดการข้อผิดพลาดง่ายขึ้นและปรับปรุงความสามารถในการบำรุงรักษาโค้ด

axios.interceptors.response.use(
  response => response,
  error => {
    // จัดการการตอบสนองข้อผิดพลาด
    if (error.response) {
      // คำขอถูกสร้างขึ้นและเซิร์ฟเวอร์ตอบสนองด้วยรหัสสถานะ
      // ที่อยู่นอกช่วง 2xx
      if (error.response.status === 401) {
        // จัดการข้อผิดพลาดที่ไม่ได้รับอนุญาต
        // ...
      } else if (error.response.status === 403) {
        // จัดการข้อผิดพลาดที่ถูกห้าม
        // ...
      } else {
        // จัดการรหัสข้อผิดพลาดอื่นๆ
        // ...
      }
    } else if (error.request) {
      // คำขอถูกสร้างขึ้นแต่ไม่ได้รับการตอบสนอง
      console.error('Error: No response received');
    } else {
      // บางสิ่งเกิดขึ้นในการตั้งค่าคำขอที่ทำให้เกิดข้อผิดพลาด
      console.error('Error:', error.message);
    }

    return Promise.reject(error);
  }
);

กลไกการลองใหม่สำหรับคำขอที่ล้มเหลว

อีกเทคนิคขั้นสูงคือการใช้กลไกการลองใหม่สำหรับคำขอที่ล้มเหลว ซึ่งอาจเป็นประโยชน์อย่างยิ่งในสถานการณ์ที่การเชื่อมต่อเครือข่ายไม่น่าเชื่อถือ หรือเมื่อต้องรับมือกับปัญหาเซิร์ฟเวอร์เป็นระยะๆ ด้วยการลองคำขอที่ล้มเหลวอีกครั้ง คุณสามารถปรับปรุงความน่าเชื่อถือโดยรวมและประสบการณ์ของผู้ใช้ของแอปพลิเคชันของคุณ

axios.interceptors.response.use(
  response => response,
  async error => {
    const originalRequest = error.config;

    if (error.response.status === 503 && !originalRequest._retry) {
      originalRequest._retry = true;
      const retryDelay = 5000; // 5 วินาที

      return new Promise(resolve => {
        setTimeout(() => {
          resolve(axios(originalRequest));
        }, retryDelay);
      });
    }

    return Promise.reject(error);
  }
);

Apidog และ Axios Interceptors

Apidog เป็นเครื่องมือตรวจสอบและแก้ไขข้อบกพร่อง API ที่ทรงพลังซึ่งผสานรวมกับ axios ได้อย่างราบรื่นและใช้ประโยชน์จากฟังก์ชัน interceptor ด้วยการใช้ axios interceptors APIDog สามารถจับภาพและวิเคราะห์คำขอและการตอบสนอง API ได้โดยอัตโนมัติ มอบข้อมูลเชิงลึกอันมีค่าและช่วยให้คุณระบุและแก้ไขปัญหาได้อย่างมีประสิทธิภาพมากขึ้น

button

นี่คือกระบวนการในการใช้ Apidog เพื่อสร้างโค้ด Axios:

ขั้นตอนที่ 1: เปิด Apidog และเลือกคำขอใหม่

ขั้นตอนที่ 2: ป้อน URL ของ API endpoint ที่คุณต้องการส่งคำขอ ป้อน ส่วนหัวหรือพารามิเตอร์สตริงแบบสอบถามที่คุณต้องการรวมไว้ในคำขอ จากนั้นคลิก "Design" เพื่อสลับไปยังอินเทอร์เฟซการออกแบบของ Apidog

ขั้นตอนที่ 3: เลือก "Generate client code " เพื่อสร้างโค้ดของคุณ

ขั้นตอนที่ 4: คัดลอกโค้ด Axios ที่สร้างขึ้นและวางลงในโปรเจกต์ของคุณ

การใช้ Apidog เพื่อส่งคำขอ HTTP

Apidog มีคุณสมบัติขั้นสูงหลายประการที่ช่วยปรับปรุงความสามารถในการทดสอบคำขอ HTTP คุณสมบัติเหล่านี้ช่วยให้คุณปรับแต่งคำขอของคุณและจัดการสถานการณ์ที่ซับซ้อนได้ง่ายดาย

button

ขั้นตอนที่ 1: เปิด Apidog และสร้าง คำขอ ใหม่

Apidog

ขั้นตอนที่ 2: ค้นหาหรือป้อนรายละเอียด API ด้วยตนเองสำหรับคำขอ POST ที่คุณต้องการสร้าง

Apidog

ขั้นตอนที่ 3: กรอกพารามิเตอร์ที่จำเป็นและข้อมูลใดๆ ที่คุณต้องการรวมไว้ในเนื้อหาคำขอ

Apidog

แนวทางปฏิบัติที่ดีที่สุดสำหรับการใช้ Axios Interceptors

ในขณะที่ axios interceptors เป็นเครื่องมืออันทรงพลัง สิ่งสำคัญคือต้องปฏิบัติตามแนวทางปฏิบัติที่ดีที่สุดเพื่อให้แน่ใจว่าโค้ดสะอาด สามารถบำรุงรักษาได้ และหลีกเลี่ยงข้อผิดพลาดทั่วไป

เคล็ดลับสำหรับโค้ด interceptor ที่สะอาดและสามารถบำรุงรักษาได้

  1. แยกข้อกังวล: แบ่งตรรกะ interceptor ของคุณออกเป็นฟังก์ชันหรือโมดูลแยกต่างหากตามความรับผิดชอบของพวกเขา สิ่งนี้ส่งเสริมการนำโค้ดกลับมาใช้ใหม่และทำให้ง่ายต่อการบำรุงรักษาและอัปเดตฟังก์ชันการทำงานเฉพาะ
  2. ใช้รูปแบบ middleware: ใช้รูปแบบ middleware เมื่อจัดโครงสร้าง interceptors ของคุณ แนวทางนี้ช่วยให้คุณเชื่อมโยง interceptors หลายตัวเข้าด้วยกัน ส่งเสริมโค้ดแบบโมดูลาร์และแบบประกอบ
  3. ใช้ประโยชน์จากการเขียนโปรแกรมเชิงฟังก์ชัน: Axios interceptors เหมาะสำหรับหลักการเขียนโปรแกรมเชิงฟังก์ชัน ใช้ฟังก์ชันบริสุทธิ์ ฟังก์ชันลำดับสูง และโครงสร้างข้อมูลที่ไม่เปลี่ยนรูปเพื่อสร้างโค้ดที่คาดการณ์ได้และทดสอบได้มากขึ้น

การหลีกเลี่ยงข้อผิดพลาดทั่วไป

  1. หลีกเลี่ยงการปรับเปลี่ยนวัตถุคำขอ/การตอบสนองดั้งเดิม: ควรส่งคืนวัตถุใหม่หรือเวอร์ชันโคลนของวัตถุคำขอหรือการตอบสนองดั้งเดิมเสมอ การปรับเปลี่ยนวัตถุดั้งเดิมอาจนำไปสู่พฤติกรรมที่ไม่คาดคิดและปัญหาที่แก้ไขได้ยาก
  2. จัดการข้อผิดพลาดอย่างเหมาะสม: ตรวจสอบให้แน่ใจว่าข้อผิดพลาดได้รับการเผยแพร่หรือจัดการอย่างถูกต้องภายใน interceptors ของคุณ การไม่ทำเช่นนั้นอาจส่งผลให้เกิดการปฏิเสธสัญญาที่ไม่ได้รับการจัดการและข้อความแสดงข้อผิดพลาดที่ไม่ชัดเจน
  3. คำนึงถึงประสิทธิภาพ: ในขณะที่ interceptors มีประสิทธิภาพ การใช้งานมากเกินไปหรือการแนะนำตรรกะที่ซับซ้อนอาจส่งผลเสียต่อประสิทธิภาพ พยายามทำให้ง่ายและมีประสิทธิภาพในการใช้งาน interceptor ของคุณ

บทสรุป: อนาคตของการพัฒนา API ด้วย Axios Interceptors

ในขณะที่เราสำรวจภูมิทัศน์ของการพัฒนา API ที่เปลี่ยนแปลงตลอดเวลา axios และฟังก์ชัน interceptor อันทรงพลังได้กลายเป็นเครื่องมืออันล้ำค่าในคลังแสงของเรา ด้วยการเรียนรู้ interceptors คุณสามารถปรับปรุงการโต้ตอบ API ของคุณ ปรับปรุงความปลอดภัย จัดการข้อผิดพลาดอย่างสม่ำเสมอ และแปลงข้อมูลได้อย่างง่ายดาย

สรุปประเด็นสำคัญ

button

ภูมิทัศน์ที่เปลี่ยนแปลงของการจัดการ API

เมื่อแอปพลิเคชันยังคงเติบโตในด้านความซับซ้อนและการพึ่งพาบริการภายนอก การจัดการ API ที่มีประสิทธิภาพจะมีความสำคัญมากขึ้นเรื่อยๆ axios และฟังก์ชัน interceptor ช่วยให้นักพัฒนาสามารถรับมือกับความท้าทายเหล่านี้ได้อย่างตรงไปตรงมา ทำให้พวกเขาสามารถสร้างแอปพลิเคชันที่แข็งแกร่ง ปรับขนาดได้ และสามารถบำรุงรักษาได้ ซึ่งผสานรวมกับ APIs จำนวนมากได้อย่างราบรื่น

Explore more

"มีการใช้บัญชีทดลองใช้ฟรีจำนวนมากเกินไปบนเครื่องนี้ โปรดอัปเกรดเป็นรุ่น Pro" ฉันเจาะ Paywall ของ Cursor ได้ใน 5 นาที!

"มีการใช้บัญชีทดลองใช้ฟรีจำนวนมากเกินไปบนเครื่องนี้ โปรดอัปเกรดเป็นรุ่น Pro" ฉันเจาะ Paywall ของ Cursor ได้ใน 5 นาที!

เบื่อข้อความ Cursor? คู่มือนี้เผย 5 วิธีแก้ปัญหา: รีเซ็ต ID เครื่อง, ใช้เครื่องมือโอเพนซอร์ส ใช้งาน AI ต่อได้ ไม่ต้องจ่าย Pro

18 March 2025

แก้ไข: "คุณได้ถึงขีดจำกัดคำขอทดลองใช้ของคุณแล้ว" ใน Cursor AI

แก้ไข: "คุณได้ถึงขีดจำกัดคำขอทดลองใช้ของคุณแล้ว" ใน Cursor AI

เจอขีดจำกัด AI ตอนเขียนโค้ด? ไม่ต้องห่วง! คู่มือนี้มี 5 วิธีแก้ปัญหา: ใช้ฟรี, รีเซ็ต, กู้คืน AI ช่วยได้! ช่วยนักพัฒนามาแล้วนับไม่ถ้วน

18 March 2025

การปรับปรุงเอกสารประกอบ API ด้วยตัวอย่าง Request Body หลายรูปแบบใน Apidog

การปรับปรุงเอกสารประกอบ API ด้วยตัวอย่าง Request Body หลายรูปแบบใน Apidog

ค้นพบวิธีที่ Apidog รองรับตัวอย่าง body หลายแบบ ช่วยเพิ่มเอกสาร API, ทดสอบง่ายขึ้น, และสอดคล้อง OpenAPI

12 March 2025

ฝึกการออกแบบ API แบบ Design-first ใน Apidog

ค้นพบวิธีที่ง่ายขึ้นในการสร้างและใช้ API