Apidog เป็นแพลตฟอร์มสำหรับการทำงานร่วมกันและการจัดการ API ที่รองรับการนำเข้าข้อมูลจำเพาะของ API ในหลายรูปแบบ สามารถนำเข้าข้อมูลจำเพาะ API กระแสหลักเกือบทั้งหมดได้โดยตรง รวมถึง OpenAPI/Swagger, Postman Collections, ไฟล์ HAR และคำสั่ง cURL
อย่างไรก็ตาม ในหลายโปรเจกต์จริง ความท้าทายหลักไม่ใช่เรื่องของการนำเข้าข้อมูลจำเพาะของ API แต่เป็นเรื่องที่ไม่มีข้อมูลจำเพาะของ API ให้สามารถนำเข้าได้ตั้งแต่แรกเริ่ม ระบบเก่าบางระบบไม่เคยมีการดูแลรักษาเอกสาร API และไม่มีไฟล์ OpenAPI หรือ Swagger
ในกรณีเหล่านี้ หากคุณต้องการสร้างเอกสาร API ที่หายไปอย่างรวดเร็ว หรือสร้างกรณีทดสอบเพื่อให้ผู้ทดสอบสามารถทำงานกับข้อมูลจริงได้ การใช้เครื่องมือจับแพ็คเก็ตมักจะเป็นแนวทางที่เร็วที่สุด
ด้วยการจับการรับส่งข้อมูล HTTP/HTTPS ของแอปพลิเคชัน กรองคำขอที่เป็นประโยชน์ ส่งออกเป็น HAR หรือ cURL แล้วนำเข้าสู่ Apidog คุณสามารถสร้างเอกสาร API ได้อย่างรวดเร็วและวางรากฐานสำหรับการทดสอบ API ต่อไป

มีเครื่องมือมากมายสำหรับการบันทึกการรับส่งข้อมูล บทความนี้ใช้ Charles Proxy เป็นตัวอย่างเพื่อแสดงขั้นตอนการทำงานที่เฉพาะเจาะจง แต่คุณสามารถใช้ทางเลือกอื่น ๆ เช่น Proxyman, Fiddler หรือเครื่องมือสำหรับนักพัฒนาที่มาพร้อมกับเบราว์เซอร์ของคุณสำหรับการจับแพ็คเก็ตได้ กระบวนการทำงานหลักๆ โดยพื้นฐานแล้วจะเหมือนกันในเครื่องมือเหล่านี้

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

การติดตั้งใบรับรองรูทของ Charles สำหรับการจับ HTTPS
ในการจับการรับส่งข้อมูล HTTPS คุณต้องติดตั้งใบรับรองรูทของ Charles ขั้นตอนนี้สำคัญมากเนื่องจาก API สมัยใหม่ส่วนใหญ่ใช้ HTTPS
บน macOS:
- คลิก "Help → SSL Proxying → Install Charles Root Certificate" จากแถบเมนู
- แอปพลิเคชัน Keychain Access จะเปิดขึ้นมาโดยอัตโนมัติ
- ค้นหาและระบุตำแหน่งใบรับรอง Charles Proxy
- ดับเบิลคลิกแล้วเปลี่ยนการตั้งค่าความน่าเชื่อถือเป็น "Always Trust"
บน Windows:
- คลิก "Help → SSL Proxying → Install Charles Root Certificate" จากแถบเมนู
- ในระหว่างขั้นตอนการติดตั้ง ให้ติดตั้งใบรับรองไปยัง "Trusted Root Certification Authorities" store
การเปิดใช้งาน SSL Proxying
หลังจากติดตั้งใบรับรองแล้ว คุณต้องเปิดใช้งาน SSL proxying:
- เลือก Proxy → SSL Proxying Settings จากแถบเมนูของ Charles
- ทำเครื่องหมายที่ตัวเลือก "Enable SSL Proxying"
3. เพิ่มชื่อโดเมน (Host) และพอร์ต (Port 443) ที่คุณต้องการจับข้อมูลลงในรายการ
4. คุณยังสามารถใช้ * เพื่อตรวจสอบโดเมนทั้งหมดได้
หลังจากการตั้งค่าเสร็จสิ้น Charles จะสามารถจับคำขอและการตอบกลับ HTTP/HTTPS ได้อย่างสมบูรณ์
เคล็ดลับ: หากคุณไม่แน่ใจว่าแอปพลิเคชันของคุณใช้โดเมนใดบ้าง คุณสามารถใช้งานแอปพลิเคชันได้อย่างอิสระก่อน แล้วสังเกตคำขอภายใต้ "Encrypted" ในรายการเซสชันของ Charles จดบันทึกโดเมนที่เกี่ยวข้อง แล้วเพิ่มลงในการตั้งค่า SSL Proxying ของ Charles
การบันทึกทราฟฟิก API จากแอปพลิเคชันของคุณ
เปิดแอปพลิเคชันหรือหน้าเว็บที่คุณต้องการวิเคราะห์และโต้ตอบกับคุณสมบัติต่างๆ เช่น การเข้าสู่ระบบ การสอบถามข้อมูล การส่งแบบฟอร์ม หรือการอัปโหลดไฟล์ แผงเซสชันทางด้านซ้ายของ Charles จะอัปเดตแบบเรียลไทม์ โดยจัดกลุ่มคำขอตามโดเมนและ URL

เมื่อคุณเลือกคำขอใดคำขอหนึ่ง แผงด้านขวาจะแสดงข้อมูลพื้นฐานและเนื้อหาการตอบกลับของคำขอนั้น ในแท็บ Contents ข้อมูล JSON และการตอบกลับอื่นๆ จะถูกยุบเป็นโครงสร้างต้นไม้ ทำให้ง่ายต่อการทำความเข้าใจโครงสร้างข้อมูลและฟิลด์ได้อย่างรวดเร็ว
การกรองและการส่งออก API Endpoints
หลังจากบันทึกเสร็จสิ้น คุณอาจพบว่ามีคำขอจำนวนมากถูกบันทึกไว้ นอกเหนือจาก API calls จริงแล้ว ยังมีคำขอทรัพยากรคงที่ต่างๆ การเรียกใช้บริการของบุคคลที่สาม และทราฟฟิกเครือข่ายอื่นๆ ในขั้นตอนนี้ คุณจำเป็นต้องกรองและเก็บเฉพาะ endpoints ที่คุณสนใจไว้
ตัวเลือกการกรอง
1. เน้นที่โดเมนหรือพาธที่เฉพาะเจาะจง:
คลิกขวาที่โดเมนหรือพาธ แล้วเลือก "Focus"
Charles จะเก็บเฉพาะคำขอภายใต้โหนดนั้น ทำให้สะดวกต่อการวิเคราะห์ของคุณ
2. ลบคำขอที่ไม่เกี่ยวข้อง:
คลิกขวาที่คำขอที่ไม่เกี่ยวข้องแล้วเลือก "Clear" เพื่อลบออก
หรือเลือกคำขอหลายรายการแล้วลบแบบเป็นชุด
3. จัดการปัญหาแคช:
หากแคชทำให้ HTML หรือ JSON แสดงผลไม่ถูกต้อง ให้คลิกขวาแล้วเลือก "No Caching"
การดำเนินการนี้จะทำให้ Charles ไม่สนใจแคชในคำขอที่ตามมา ซึ่งช่วยให้คุณสามารถจับเนื้อหาการตอบกลับที่สมบูรณ์ได้
การส่งออกเป็นไฟล์ HAR
หลังจากกรองเสร็จสิ้น ให้ส่งออกเซสชันที่คุณเลือก:
- เลือกเซสชันที่คุณต้องการส่งออก:
คุณสามารถเลือกโหนดโดเมนทั้งหมดได้ หรือ
กด Cmd (Mac) หรือ Ctrl (Windows) และเลือกคำขอเฉพาะทีละรายการ
เลือก File → Export Session จากแถบเมนู
ในกล่องโต้ตอบการส่งออก ให้เลือกส่งออกในรูปแบบ "HTTP Archive (.har)" เพื่อสร้างไฟล์ HAR
การนำเข้าสู่ Apidog เพื่อสร้างเอกสาร API โดยอัตโนมัติ
ตอนนี้ได้เวลาที่จะนำเข้าทราฟฟิกที่คุณจับได้เข้าสู่ Apidog:
- เปิดไคลเอนต์ Apidog
2. ไปที่ Project Settings → Import Data → .har File
3. เลือกไฟล์ HAR ที่คุณส่งออกจาก Charles

Apidog จะแยกวิเคราะห์เนื้อหาไฟล์โดยอัตโนมัติและแสดงข้อมูล endpoint ที่ตรวจพบในพื้นที่แสดงตัวอย่าง ซึ่งรวมถึง:
- จำนวน endpoints ที่ตรวจพบ
- วิธีการส่งคำขอ (GET, POST, PUT, DELETE, เป็นต้น)
ในระหว่างกระบวนการนำเข้า คุณสามารถกำหนดค่าตัวเลือกต่างๆ เช่น:
- จะนำเข้าสู่โมดูลใด
- จะเขียนทับ endpoints ที่มีอยู่หรือไม่
หลังจากนำเข้าเสร็จสิ้น คุณสามารถดู endpoints ในโมดูลที่เกี่ยวข้องได้
การปรับแต่งและเพิ่มประสิทธิภาพเอกสาร API
เอกสาร API ที่สร้างขึ้นโดยอัตโนมัติเป็นจุดเริ่มต้นที่ดี แต่โดยปกติแล้วจำเป็นต้องมีการปรับเปลี่ยนเพิ่มเติมเพื่อให้ตรงกับความต้องการทางธุรกิจของคุณ นี่คือการปรับปรุงทั่วไปบางส่วน:
- ปรับปรุงชื่อ endpoint: เปลี่ยนชื่อทั่วไปให้สื่อความหมายมากขึ้น
- เพิ่มคำอธิบายพารามิเตอร์: อธิบายว่าแต่ละพารามิเตอร์ทำอะไรและควรใช้เมื่อใด
- ปรับปรุงองค์ประกอบการตอบสนอง: จัดระเบียบองค์ประกอบการตอบสนองให้เข้ากับตรรกะทางธุรกิจของคุณ
- เพิ่มตัวอย่าง: ใส่ตัวอย่างคำขอและการตอบสนอง
- การกำหนดค่าการตรวจสอบสิทธิ์: หาก endpoint ต้องการการตรวจสอบสิทธิ์ ให้กำหนดค่าข้อมูลที่เกี่ยวข้องในตัวแปรสภาพแวดล้อมของ Apidog หรือการตั้งค่าการตรวจสอบสิทธิ์ (Auth settings) เพื่อให้แน่ใจว่าการเรียก API ของคุณทำงานได้อย่างถูกต้องเมื่อทำการทดสอบ
ข้อคิดสุดท้าย
ด้วยการบันทึกทราฟฟิก HTTP/HTTPS โดยใช้เครื่องมือจับแพ็คเก็ต แล้วนำเข้าสู่ Apidog คุณสามารถสร้างเอกสาร API ได้อย่างรวดเร็วและให้ข้อมูลจริงสำหรับการทดสอบ
ไม่ว่าจะเป็นเบราว์เซอร์, ไคลเอนต์เดสก์ท็อป, หรือแอปพลิเคชันมือถือ วิธีนี้สามารถลดเวลาที่ใช้ในการเตรียมเอกสาร API ได้อย่างมาก และช่วยให้ทีมของคุณเริ่มต้นการทดสอบและพัฒนา API ได้อย่างรวดเร็ว
