คุณเพิ่งคลิกปุ่มเพื่อเรียกใช้รายงานที่ซับซ้อน หรืออาจจะร้องของานแปลงไฟล์วิดีโอ แทนที่หน้าเว็บจะค้างไปหลายนาที คุณกลับได้รับข้อความทันทีว่า: "คำขอของคุณได้รับการยอมรับเพื่อดำเนินการ" ไม่กี่นาทีต่อมา คุณก็ได้รับอีเมลพร้อมลิงก์ไปยังรายงานที่เสร็จสมบูรณ์ของคุณ
ประสบการณ์ที่ราบรื่นและไม่พร้อมกันนี้เป็นจุดเด่นของซอฟต์แวร์สมัยใหม่ที่ออกแบบมาอย่างดี และขับเคลื่อนโดยรหัสสถานะ HTTP ที่สำคัญแต่หลายคนมักเข้าใจผิด นั่นคือ 202 Accepted
ไม่เหมือนกับรหัส 200 OK
ที่หมายถึง "ฉันทำเสร็จแล้วตอนนี้" หรือ 201 Created
ที่หมายถึง "ฉันสร้างสิ่งใหม่แล้ว" รหัสสถานะ 202 Accepted
คือการจัดการความคาดหวังทั้งหมด เป็นวิธีที่เซิร์ฟเวอร์บอกว่า "ได้รับข้อความแล้ว ฉันเข้าใจว่าคุณต้องการให้ฉันทำอะไร ฉันไม่สามารถให้ผลลัพธ์ได้ทันที แต่ฉันได้นำไปใส่ในคิวแล้วและจะจัดการให้ คุณไม่จำเป็นต้องรอ"
มันเทียบเท่ากับการยื่นบัตรคิวให้กับพนักงานต้อนรับในร้านอาหารที่วุ่นวาย พวกเขาไม่ได้นำอาหารมาให้คุณทันที แต่คุณเชื่อมั่นว่าตำแหน่งของคุณในคิวปลอดภัยและอาหารของคุณจะพร้อมในที่สุด
หากคุณกำลังสร้างหรือใช้ API ที่จัดการงานที่ใช้เวลานาน การทำความเข้าใจ 202 Accepted
เป็นสิ่งสำคัญในการสร้างแอปพลิเคชันที่ตอบสนอง ปรับขนาดได้ และใช้งานง่าย
แล้วสิ่งนี้หมายความว่าอย่างไร และทำไมจึงสำคัญสำหรับนักพัฒนา ผู้ทดสอบ และผู้ใช้ API ที่จะต้องทำความเข้าใจมัน?
และก่อนที่เราจะเจาะลึกกลไก หากคุณกำลังออกแบบ API ที่ต้องการเวิร์กโฟลว์แบบอะซิงโครนัส คุณต้องมีเครื่องมือที่สามารถช่วยคุณทดสอบและแสดงภาพการโต้ตอบที่ซับซ้อนเหล่านี้ **ดาวน์โหลด Apidog ฟรี**; มันเป็นแพลตฟอร์ม API แบบครบวงจรที่ช่วยให้คุณจำลองการตอบสนอง 202
ทดสอบกลไกการโพล และรับรองว่ากระบวนการแบบอะซิงโครนัสของคุณแข็งแกร่งและเชื่อถือได้
ตอนนี้ เรามาดูกันว่า 202 Accepted
หมายถึงอะไร ควรใช้เมื่อใด และจะนำไปใช้อย่างถูกต้องได้อย่างไร
ปูพื้นฐาน: ปัญหาของการคิดแบบซิงโครนัส
เพื่อทำความเข้าใจว่าทำไม 202
จึงจำเป็น เราต้องตระหนักถึงข้อจำกัดของคำขอแบบซิงโครนัสก่อน
วงจรการร้องขอ-ตอบกลับ HTTP ทั่วไปเป็นแบบซิงโครนัสและบล็อก:
- ไคลเอนต์: ส่งคำขอ
- ไคลเอนต์: รอ... (มักเรียกว่า "time to first byte" หรือ TTFB)
- เซิร์ฟเวอร์: ประมวลผลคำขอ (ซึ่งอาจเกี่ยวข้องกับการคำนวณที่ซับซ้อน การสอบถามฐานข้อมูล การเรียกใช้บริการอื่น ๆ)
- เซิร์ฟเวอร์: ส่งการตอบกลับ (
200 OK
,201 Created
, เป็นต้น) - ไคลเอนต์: ได้รับการตอบกลับและดำเนินการ
โมเดลนี้ทำงานได้อย่างสมบูรณ์แบบสำหรับการดำเนินการที่รวดเร็ว เช่น การดึงโปรไฟล์ผู้ใช้ การเรียกดูรายการผลิตภัณฑ์ หรือการอัปเดตฟิลด์เดียว แต่จะเกิดอะไรขึ้นหากการดำเนินการใช้เวลา 5 วินาที? 30 วินาที? 5 นาที?
- การเชื่อมต่ออาจหมดเวลา, ทำให้เกิดข้อผิดพลาด
- เบราว์เซอร์หรือแอปของผู้ใช้จะดูเหมือนค้าง, สร้างประสบการณ์ผู้ใช้ที่แย่มาก
- กระบวนการของเซิร์ฟเวอร์ของคุณจะถูกผูกไว้, ไม่สามารถจัดการคำขอที่เข้ามาอื่น ๆ ได้ ซึ่งนำไปสู่ความสามารถในการปรับขนาดที่ต่ำ
รหัสสถานะ 202 Accepted
เป็นวิธีแก้ปัญหาที่สง่างามสำหรับปัญหานี้ มันทำลายลักษณะการบล็อกของ HTTP ทำให้สามารถประมวลผลแบบอะซิงโครนัสได้
HTTP 202 Accepted หมายถึงอะไรกันแน่?
รหัสสถานะ HTTP 202 Accepted
ถูกกำหนดไว้ใน RFC ว่าเป็นการตอบกลับที่สำเร็จ อย่างไรก็ตาม มันเป็นความสำเร็จประเภทที่เฉพาะเจาะจงมาก รหัสสถานะ 202 Accepted อยู่ในหมวดหมู่ 2xx ซึ่งโดยทั่วไปบ่งบอกถึงความสำเร็จ มันบ่งบอกว่า:
- คำขอได้รับการ รับและเข้าใจแล้ว
- คำขอได้รับการ ยอมรับเพื่อดำเนินการ
- การดำเนินการ ยังไม่เสร็จสมบูรณ์
- การดำเนินการ อาจจะหรือไม่ส่งผลให้เกิดการกระทำที่เสร็จสมบูรณ์ในที่สุด (อาจล้มเหลวในภายหลังได้)
อย่างไก็ตาม ไม่เหมือนกับ 200 OK
ซึ่งหมายความว่าคำขอได้รับการประมวลผลสำเร็จและเสร็จสมบูรณ์แล้ว 202 บอกเราในสิ่งที่แตกต่างออกไป:
เซิร์ฟเวอร์ยอมรับคำขอแล้ว แต่การประมวลผลยังไม่เสร็จสิ้น
สิ่งสำคัญคือ การตอบกลับควรให้ข้อมูลแก่ไคลเอนต์ว่าพวกเขาสามารถตรวจสอบสถานะของคำขอได้ที่ใด หรือผลลัพธ์สุดท้ายจะพร้อมใช้งานในอนาคตที่ใด
กล่าวอีกนัยหนึ่ง 202 เป็นวิธีสุภาพที่เซิร์ฟเวอร์จะบอกว่า:
"เฮ้ ฉันได้รับคำขอของคุณแล้ว ฉันกำลังดำเนินการอยู่ แต่ยังไม่ต้องคาดหวังผลลัพธ์ในทันทีนะ"
สิ่งนี้มีประโยชน์อย่างยิ่งสำหรับกระบวนการ การทำงานแบบอะซิงโครนัส ที่ต้องใช้เวลา เช่น การส่งอีเมล การประมวลผลชุดข้อมูลขนาดใหญ่ หรือการเริ่มต้นงานเบื้องหลัง
ทำไม 202 Accepted ถึงมีอยู่?
ไม่ใช่ทุกคำขอที่จะสามารถประมวลผลได้ทันที ลองจินตนาการดูว่าทุกครั้งที่คุณส่ง API call เซิร์ฟเวอร์จะต้องรอจนกว่างานทั้งหมดจะเสร็จสมบูรณ์ก่อนที่จะตอบกลับ นั่นอาจนำไปสู่:
- การหมดเวลา (Timeouts) สำหรับงานที่ใช้เวลานาน
- ประสบการณ์ผู้ใช้ที่ไม่ดี เนื่องจากไคลเอนต์จะค้าง
- เซิร์ฟเวอร์โอเวอร์โหลด เนื่องจากทรัพยากรถูกผูกไว้จนกว่างานจะเสร็จสิ้น
รหัสสถานะ 202 แก้ปัญหานี้โดยอนุญาตให้เซิร์ฟเวอร์รับทราบคำขอโดยไม่ต้องให้ไคลเอนต์รอ
เวิร์กโฟลว์แบบอะซิงโครนัส: การแยกย่อยทีละขั้นตอน
ลองมาดูตัวอย่างที่เป็นรูปธรรม สมมติว่ามี API สำหรับสร้างรายงานข้อมูลส่วนบุคคล
ขั้นตอนที่ 1: คำขอของไคลเอนต์
แอปพลิเคชันไคลเอนต์ส่งคำขอ POST
เพื่อเริ่มต้นการสร้างรายงาน
POST /api/reports/generate HTTP/1.1Host: api.example.comContent-Type: application/jsonAuthorization: Bearer <token>
{
"type": "annual_sales",
"year": 2023,
"format": "pdf"
}
ขั้นตอนที่ 2: การตอบกลับ 202 ของเซิร์ฟเวอร์
เซิร์ฟเวอร์ได้รับคำขอ มันตรวจสอบว่าคำขอมีรูปแบบที่ถูกต้องและผู้ใช้ได้รับอนุญาต จากนั้นจะนำงานเข้าสู่คิวการประมวลผลทันที (โดยใช้ระบบเช่น Redis, RabbitMQ หรือ Amazon SQS) และตอบกลับ
HTTP/1.1 202 AcceptedLocation: <https://api.example.com/api/reports/status/job-12345Content-Type:> application/json
{
"message": "Your report generation request has been accepted and is being processed.",
"job_id": "job-12345",
"status_url": "<https://api.example.com/api/reports/status/job-12345>",
"estimated_completion_time": "2023-10-27T10:05:00Z"
}
การตอบกลับนี้มีประสิทธิภาพอย่างเหลือเชื่อ มาแยกย่อยดูกัน:
HTTP/1.1 202 Accepted
: ข้อความหลัก: "ฉันได้รับแล้ว"Location
Header: ส่วนหัว HTTP มาตรฐานที่ชี้ไปยัง URL ที่สามารถตรวจสอบสถานะของคำขอได้ นี่คือแนวปฏิบัติที่ดีที่สุดสำหรับการตอบกลับ 202- Response Body: ให้ข้อมูลที่เป็นประโยชน์ ทั้งที่มนุษย์และเครื่องจักรสามารถอ่านได้เกี่ยวกับสิ่งที่เกิดขึ้นต่อไป
job_id
และstatus_url
เป็นสิ่งสำคัญ
ขั้นตอนที่ 3: การประมวลผลแบบอะซิงโครนัส
ตอนนี้ไคลเอนต์มีอิสระที่จะทำสิ่งอื่น ๆ ในขณะเดียวกัน บนเซิร์ฟเวอร์:
- Worker (หรือกระบวนการ) เบื้องหลังที่แยกต่างหากจะรับงานจากคิว
- มันทำงานที่ใช้เวลานาน: สอบถามฐานข้อมูล รวบรวมข้อมูล สร้าง PDF
- เมื่อเสร็จสิ้น มันจะจัดเก็บผลลัพธ์ (เช่น ในที่เก็บข้อมูลบนคลาวด์อย่าง S3) และอัปเดตสถานะงานเป็น "เสร็จสมบูรณ์"
ขั้นตอนที่ 4: ไคลเอนต์ตรวจสอบความสมบูรณ์
ตอนนี้ไคลเอนต์สามารถโพล status_url
ที่ให้ไว้ในการตอบกลับ 202 ได้แล้ว
GET https://api.example.com/api/reports/status/job-12345
การตอบกลับคำขอโพลนี้อาจเปลี่ยนแปลงไปตามกาลเวลา:
- ในตอนแรก:
{"status": "processing", "progress": 45}
- เมื่อเสร็จสมบูรณ์:
{"status": "completed", "download_url": "<https://api.example.com/api/reports/download/job-12345.pdf>"}
อีกทางเลือกหนึ่ง เซิร์ฟเวอร์สามารถส่งการแจ้งเตือนผ่าน webhook ไปยัง URL ที่ไคลเอนต์ให้ไว้ ซึ่งเป็นรูปแบบที่ซับซ้อนและมีประสิทธิภาพมากกว่าการโพล
ลักษณะสำคัญของ 202 Accepted
นี่คือคุณสมบัติที่สำคัญของการตอบกลับ 202:
- ได้รับคำขอแล้ว: เซิร์ฟเวอร์ได้รับคำขอของคุณ
- การประมวลผลยังไม่เสร็จสิ้น: งานจริงยังคงดำเนินอยู่
- ไม่มีการรับประกันว่าจะเสร็จสมบูรณ์: ไม่เหมือนกับ 200, 202 ไม่ได้สัญญาว่างานจะสำเร็จ เพียงแค่บอกว่าได้รับการยอมรับแล้ว
- มีประโยชน์สำหรับเวิร์กโฟลว์แบบอะซิงโครนัส: งานเบื้องหลัง คิว หรือการประมวลผลที่ล่าช้า
202 Accepted เทียบกับรหัสความสำเร็จอื่นๆ: การรู้ถึงความแตกต่าง
เป็นเรื่องง่ายที่จะสับสน 202
กับรหัส 2xx อื่นๆ นี่คือแผ่นโกงง่ายๆ:
200 OK
: "ฉันประมวลผลคำขอของคุณสำเร็จแล้ว และ นี่คือผลลัพธ์ ในตอนนี้" (ซิงโครนัส, ผลลัพธ์ทันที)201 Created
: "ฉันสร้างทรัพยากรใหม่สำเร็จแล้ว ในตอนนี้ นี่คือตำแหน่งและข้อมูลของมัน" (ซิงโครนัส, การสร้างทันที)202 Accepted
: "ฉันจะประมวลผลคำขอของคุณ โปรดกลับมาตรวจสอบผลลัพธ์ในภายหลัง" (อะซิงโครนัส, การประมวลผลแบบเลื่อนเวลา)204 No Content
: "ฉันประมวลผลคำขอของคุณสำเร็จแล้ว แต่ไม่มีเนื้อหาที่จะส่งกลับไปให้คุณ" (ซิงโครนัส, ไม่มีเนื้อหา)
ใช้ 202
เมื่อผลลัพธ์จะพร้อมใช้งานในอนาคต ไม่ใช่ทันที
ทำไมต้องใช้ 202 Accepted? ประโยชน์หลัก
- ประสบการณ์ผู้ใช้ที่ดีขึ้น (UX): แอปพลิเคชันไคลเอนต์ยังคงตอบสนอง ผู้ใช้จะได้รับข้อเสนอแนะทันทีว่าคำขอของพวกเขาได้รับการรับแล้ว ไม่ใช่แค่ล้อหมุนที่แสดงว่ากำลังรอ
- ความสามารถในการปรับขนาดเซิร์ฟเวอร์ที่ดีขึ้น: เธรดหลักในการจัดการคำขอของเซิร์ฟเวอร์จะถูกปล่อยว่างเกือบจะทันที พวกเขาจะมอบหมายงานหนักให้กับ worker เบื้องหลัง ทำให้เซิร์ฟเวอร์สามารถจัดการคำขอที่เข้ามาได้มากขึ้น
- จัดการความไม่แน่นอน: เซิร์ฟเวอร์สามารถยอมรับคำขอได้แม้ว่าจะไม่แน่ใจ 100% ว่าจะสามารถดำเนินการให้เสร็จสิ้นได้ในภายหลัง ตัวอย่างเช่น อาจยอมรับคำขอที่ขึ้นอยู่กับบริการของบุคคลที่สามที่หยุดชั่วคราว
- สมจริงสำหรับการดำเนินการที่ซับซ้อน: มันจำลองกระบวนการในโลกแห่งความเป็นจริงที่ต้องใช้เวลาได้อย่างแม่นยำ เช่น การส่งอีเมล การประมวลผลวิดีโอ การรันโมเดลแมชชีนเลิร์นนิง หรือการจัดการการส่งออกข้อมูลขนาดใหญ่
กรณีการใช้งานจริงสำหรับ HTTP 202
คุณจะพบ 202 Accepted
ในแอปพลิเคชันสมัยใหม่หลายแห่ง:
- การประมวลผลไฟล์: การแปลงไฟล์ภาพ/วิดีโอ, การแปลงเอกสาร (เช่น การสร้าง PDF)
- การดำเนินการข้อมูล: การสร้างรายงานขนาดใหญ่, การส่งออก/นำเข้าข้อมูล, การส่งอีเมลจำนวนมาก
- AI/Machine Learning: การส่งงานสำหรับการฝึกโมเดลหรือการอนุมาน
- การประมวลผลการชำระเงิน: เกตเวย์การชำระเงินบางแห่งยอมรับคำขอการชำระเงินแบบอะซิงโครนัส
- DevOps/CI-CD: การทริกเกอร์ Build Pipeline API จะยอมรับคำขอทันทีและส่งลิงก์ไปยังบันทึกการ Build
ประโยชน์ของการใช้ 202 Accepted
ทำไมนักพัฒนาและนักออกแบบ API ควรสใช้ 202?
- ป้องกันไคลเอนต์หมดเวลา: ผู้ใช้ไม่ต้องรอ
- ปรับปรุงความสามารถในการปรับขนาด: เซิร์ฟเวอร์จะไม่ถูกล็อกด้วยงานที่ใช้เวลานาน
- ข้อเสนอแนะผู้ใช้ที่ดีขึ้น: แทนที่จะเงียบ ไคลเอนต์จะรู้ว่าคำขอกำลังถูกจัดการ
- รองรับสถาปัตยกรรมแบบอะซิงโครนัส: จำเป็นสำหรับไมโครเซอร์วิสสมัยใหม่
202 Accepted ในเวิร์กโฟลว์แบบอะซิงโครนัส
นี่คือวิธีการทำงานโดยทั่วไป:
- ไคลเอนต์ส่งคำขอ
- เซิร์ฟเวอร์ตอบกลับด้วย 202 และอาจมี "URL สถานะ"
- ไคลเอนต์ตรวจสอบกลับ ด้วยปลายทางสถานะเพื่อดูว่างานเสร็จสิ้นแล้วหรือไม่
ตัวอย่างเช่น:
{
"status": "processing",
"check_status": "/jobs/12345/status"
}
รูปแบบนี้ทำให้ทั้งสองฝ่ายพึงพอใจ: ไคลเอนต์ได้รับการรับทราบทันที และเซิร์ฟเวอร์ก็มีพื้นที่หายใจ
การทดสอบเวิร์กโฟลว์ 202 ด้วย Apidog

การทดสอบโฟลว์ API แบบอะซิงโครนัสมีความซับซ้อนมากกว่าการทดสอบการเรียกแบบซิงโครนัสธรรมดา นี่คือจุดที่ Apidog กลายเป็นเครื่องมือที่มีค่าอย่างยิ่ง
ด้วย Apidog คุณสามารถ:
- เขียนสคริปต์โฟลว์: สร้างสถานการณ์ทดสอบที่ส่งคำขอ
POST
ก่อนและตรวจสอบว่ามีการตอบกลับ202
พร้อมstatus_url
- แยกตัวแปร: ใช้สคริปต์ของ Apidog เพื่อแยก
job_id
หรือstatus_url
จากการตอบกลับ202
โดยอัตโนมัติ และบันทึกเป็นตัวแปรสภาพแวดล้อม - ทดสอบการโพล: สร้างคำขอ
GET
ที่ตามมาซึ่งใช้ตัวแปรที่แยกออกมาเพื่อเรียกstatus_url
คุณสามารถกำหนดค่า Apidog ให้ลองส่งคำขอนี้ซ้ำจนกว่าจะได้รับสถานะ "completed" - ตรวจสอบผลลัพธ์สุดท้าย: เมื่องานเสร็จสิ้น ให้เขียน assertion เพื่อตรวจสอบการตอบกลับสุดท้ายจาก URL ดาวน์โหลด
สิ่งนี้ช่วยให้คุณสามารถทดสอบการเดินทางแบบอะซิงโครนัสทั้งหมดโดยอัตโนมัติ เพื่อให้มั่นใจในความน่าเชื่อถือและตรวจจับข้อผิดพลาด
วิธีทดสอบการตอบกลับ 202 Accepted (ด้วย Apidog)

นี่คือจุดที่ Apidog โดดเด่น ไม่เหมือนเครื่องมือแบบคงที่ Apidog ช่วยให้คุณ:
- ส่งคำขอ และจำลองรหัสสถานะต่างๆ (เช่น 202)
- จำลองปลายทาง API เพื่อทดสอบเวิร์กโฟลว์แบบอะซิงโครนัส
- จัดทำเอกสาร API เพื่อให้นักพัฒนารู้ว่าควรคาดหวังอะไรจากการตอบกลับ 202
- ทำงานร่วมกัน กับสมาชิกในทีมเพื่อปรับปรุงการจัดการแบบอะซิงโครนัส
ด้วย Apidog คุณสามารถสร้างและทดสอบ เวิร์กโฟลว์ 202 แบบครบวงจร ตั้งแต่การยอมรับจนถึงการเสร็จสิ้น โดยไม่ต้องเปลี่ยนเครื่องมือ
ข้อผิดพลาดที่อาจเกิดขึ้นและความเข้าใจผิดทั่วไป
อย่างไรก็ตาม 202 อาจถูกนำไปใช้ในทางที่ผิด ข้อผิดพลาดบางประการได้แก่:
- การสันนิษฐานว่าเสร็จสมบูรณ์: เพียงแค่คำขอได้รับการยอมรับ ไม่ได้หมายความว่าจะสำเร็จ
- ไม่ให้ข้อมูลติดตาม: API ควรรวมวิธีการสำหรับไคลเอนต์เพื่อตรวจสอบสถานะงาน
- การใช้ 202 มากเกินไป: อย่าใช้กับงานง่ายๆ ที่ดำเนินการทันที เพราะจะทำให้ไคลเอนต์สับสน
ความท้าทายและแนวปฏิบัติที่ดีที่สุด
การนำ 202
ไปใช้อย่างถูกต้องต้องใช้การพิจารณาอย่างรอบคอบ
- จัดเตรียม Status Endpoint: นี่เป็นสิ่งที่ต่อรองไม่ได้ คุณ ต้อง จัดเตรียม URL (ผ่าน
Location
header หรือ response body) ที่ไคลเอนต์สามารถตรวจสอบความคืบหน้าและผลลัพธ์สุดท้ายของคำขอได้ - ความไม่เปลี่ยนแปลง (Idempotency) เป็นสิ่งสำคัญ: หากไคลเอนต์ไม่แน่ใจว่าคำขอของพวกเขาผ่านไปแล้วหรือไม่ (เช่น เนื่องจากปัญหาเครือข่าย) พวกเขาอาจลองใหม่ API ของคุณควรได้รับการออกแบบมาเพื่อจัดการคำขอที่ซ้ำกันอย่างสง่างามโดยใช้ idempotency keys เพื่อป้องกันไม่ให้งานเดียวกันถูกจัดคิวหลายครั้ง
- กำหนดความคาดหวังที่ชัดเจน: ใช้ response body เพื่อระบุเวลาที่คาดว่าจะเสร็จสิ้น หรือข้อความสถานะที่เรียบง่าย (
queued
,processing
,failed
,succeeded
) - พิจารณา Webhooks: สำหรับทางเลือกที่มีประสิทธิภาพมากกว่าการโพลล์ ให้ไคลเอนต์สามารถลงทะเบียน webhook URL ที่เซิร์ฟเวอร์ของคุณจะเรียกเมื่องานเสร็จสมบูรณ์
- วางแผนสำหรับความล้มเหลว: งานอาจล้มเหลวในเบื้องหลัง ปลายทางสถานะของคุณต้องแจ้งความล้มเหลวและอาจระบุรหัสเหตุผลด้วย
แนวปฏิบัติที่ดีที่สุดสำหรับการนำ 202 Accepted ไปใช้
หากคุณกำลังออกแบบ API ที่ส่งคืน 202 โปรดคำนึงถึงแนวปฏิบัติที่ดีที่สุดเหล่านี้:
- ส่งคืนบริบทเสมอ: ระบุ ID งาน หรือ URL สถานะ
- จัดทำเอกสารให้ชัดเจน: อธิบายว่าไคลเอนต์ควรตรวจสอบความคืบหน้าอย่างไร
- ใช้ webhooks เมื่อเป็นไปได้: แจ้งเตือนไคลเอนต์เมื่อภารกิจเสร็จสิ้น
- อย่าใช้มากเกินไป: ส่งคืน 202 สำหรับงานแบบอะซิงโครนัสจริง ๆ เท่านั้น
202 Accepted ใน REST เทียบกับ GraphQL APIs
- REST APIs: 202 เป็นเรื่องปกติเนื่องจากคำขอมักจะจับคู่กับกระบวนการที่ใช้เวลานาน
- GraphQL APIs: พบน้อยกว่า เนื่องจาก GraphQL มักจะสนับสนุนการสอบถามแบบซิงโครนัส แต่ก็ยังเป็นไปได้ด้วยการเปลี่ยนแปลงแบบอะซิงโครนัส
บทสรุป: การยอมรับการออกแบบแบบอะซิงโครนัส
รหัสสถานะ HTTP 202 Accepted
เป็นเครื่องมืออันทรงพลังในชุดเครื่องมือของนักออกแบบ API มันแสดงถึงการเปลี่ยนแปลงจากการคิดถึง API ในฐานะกลไกการร้องขอ-ตอบกลับแบบง่ายๆ ไปสู่การคิดถึง API ในฐานะระบบสำหรับการจัดการเวิร์กโฟลว์ที่ซับซ้อนในโลกแห่งความเป็นจริง รหัสสถานะ 202 Accepted อาจไม่ใช่รหัส HTTP ที่มีชื่อเสียงที่สุด แต่มันมีบทบาทสำคัญในเวิร์กโฟลว์ API แบบอะซิงโครนัส มันบอกไคลเอนต์ว่า "เราได้รับคำขอของคุณแล้ว แต่เรายังคงดำเนินการอยู่"
ด้วยการใช้ 202
คุณจะสร้าง API ที่ปรับขนาดได้มากขึ้น ยืดหยุ่นมากขึ้น และมอบประสบการณ์ที่เหนือกว่ามากสำหรับนักพัฒนาที่ใช้มันและผู้ใช้ปลายทางที่ได้รับประโยชน์จากมันในท้ายที่สุด
มันตระหนักว่าไม่ใช่ทุกอย่างในซอฟต์แวร์ที่จะเกิดขึ้นได้ทันที และมันเป็นวิธีมาตรฐานที่แข็งแกร่งในการจัดการกับความเป็นจริงนั้น
ดังนั้น ครั้งต่อไปที่คุณกำลังออกแบบปลายทางสำหรับงานที่ใช้เวลานาน อย่าบังคับให้มันเป็นแบบซิงโครนัส ยอมรับลักษณะแบบอะซิงโครนัสของงาน ส่งคืน 202 Accepted
ระบุ URL สถานะ และปลดปล่อยแอปพลิเคชันของคุณจากการถูกคำขอที่รอกดดัน หากคุณกำลังสร้างหรือทดสอบ API ที่ส่งคืน 202 คุณต้องมีเครื่องมือที่ช่วยให้คุณจำลอง ทดสอบ และจัดทำเอกสารเวิร์กโฟลว์เหล่านี้ได้อย่างง่ายดาย นั่นคือสิ่งที่ Apidog มอบให้ ใช้เครื่องมืออย่าง Apidog เพื่อให้แน่ใจว่าการใช้งานของคุณแข็งแกร่ง ทดสอบได้ และน่าพึงพอใจในการรวมเข้าด้วยกัน พร้อมที่จะทำให้การทดสอบและจัดทำเอกสาร API ของคุณง่ายขึ้นแล้วหรือยัง? ดาวน์โหลด Apidog ฟรี วันนี้ และทำให้การจัดการรหัสอย่าง 202 Accepted เป็นเรื่องง่ายดาย