เครื่องมือจำลอง API แบบ Headless จะสร้าง API จำลองที่ทำงานได้จริงจากข้อกำหนดหรือการกำหนดค่า จากนั้นเรียกใช้จากบรรทัดคำสั่งโดยไม่มีหน้าต่างให้คลิกผ่าน นั่นคือสิ่งที่คุณต้องการภายใน CI pipeline, Docker container หรือสคริปต์การพัฒนาส่วนหน้า คู่มือนี้จะอธิบายว่า “headless” หมายถึงอะไรสำหรับการจำลอง แสดงตัวเลือก headless ที่แท้จริง (Prism, WireMock, Mockoon CLI) และครอบคลุมว่า Apidog เข้ากันได้อย่างไร หากคุณต้องการทำความเข้าใจแนวคิดก่อน ให้เริ่มด้วย ว่า Mock API คืออะไร
“Headless” สำหรับ Mock API หมายถึงอะไร
เซิร์ฟเวอร์จำลองจะตอบกลับคำขอ HTTP ด้วยการตอบสนองที่ปลอมแต่สมจริง เพื่อให้ส่วนหน้าหรือชุดการทดสอบสามารถทำงานได้ก่อนที่แบ็กเอนด์จริงจะมีอยู่ “Headless” เพียงแค่หมายถึงการจำลองทำงานโดยไม่มีอินเทอร์เฟซแบบกราฟิก คุณเริ่มต้นด้วยคำสั่ง ชี้ไปที่ข้อกำหนดหรือไฟล์ข้อมูล และมันจะฟังบนพอร์ต
สิ่งนี้มีความสำคัญเพราะสถานที่ที่คุณต้องการการจำลองมากที่สุดคือสถานที่ที่ไม่มีหน้าจอ:
- งาน CI ที่ต้องการแบ็กเอนด์ที่เสถียรเพื่อทดสอบ
- Docker container ในสแตก
docker-compose - เทอร์มินัลของเพื่อนร่วมทีมที่ต้องการให้การจำลองทำงานในพื้นหลัง
- สภาพแวดล้อมพรีวิวชั่วคราวที่สร้างขึ้นต่อ pull request
เครื่องมือจำลอง GUI เหมาะสำหรับการออกแบบการตอบสนองบนแล็ปท็อปของคุณ แต่เมื่อคุณต้องการการจำลองนั้นใน pipeline คุณต้องมีโหมด headless: แฟล็ก CLI, อิมเมจ Docker หรือ URL ที่โฮสต์ที่งานใดๆ ก็ตามสามารถเรียกใช้ได้
Mock ที่ขับเคลื่อนด้วย Spec เทียบกับ Mock ที่ขับเคลื่อนด้วย Config
เครื่องมือจำลองแบบ Headless แบ่งออกเป็นสองกลุ่ม และความแตกต่างจะกำหนดเวิร์กโฟลว์ทั้งหมดของคุณ
เครื่องมือที่ขับเคลื่อนด้วย Spec จะอ่านเอกสาร OpenAPI ของคุณและให้บริการการตอบสนองโดยตรงจากเอกสารนั้น สคีมาคือแหล่งความจริง เพิ่มฟิลด์ลงใน spec และ mock จะส่งคืนค่านั้น สิ่งนี้ทำให้ mock มีความซื่อสัตย์เพราะมันไม่สามารถเบี่ยงเบนไปจากสัญญาได้มากนัก
เครื่องมือที่ขับเคลื่อนด้วย Config จัดเก็บการตอบสนองในรูปแบบของตัวเอง (ไฟล์ JSON, สตับที่บันทึกไว้, กฎที่เขียนด้วยมือ) พวกมันมีความยืดหยุ่นและดีสำหรับกรณีพิเศษที่ spec ไม่ครอบคลุม แต่คุณต้องดูแล config นั้นด้วยตนเอง และมันอาจเบี่ยงเบนไปจาก API จริง
ทีมส่วนใหญ่ต้องการ spec-driven สำหรับ happy path และ config-driven overrides สำหรับกรณีแปลกๆ การตั้งค่า API mocking ที่ดีที่สุดรองรับทั้งสองแบบ
ตัวเลือก Mock แบบ Headless อย่างตรงไปตรงมา
นี่คือเครื่องมือที่ควรรู้จัก แต่ละเครื่องมือทำงานได้โดยไม่มี GUI และแต่ละเครื่องมือก็มีจุดแข็งที่แท้จริง
Prism (Stoplight)
Prism เปลี่ยนไฟล์ OpenAPI 2/3 หรือ Postman Collection ให้เป็นเซิร์ฟเวอร์จำลองด้วยคำสั่งเดียว:
prism mock openapi.yaml

มันจะฟังบน http://127.0.0.1:4010 โดยค่าเริ่มต้น โดยค่าเริ่มต้นมันจะส่งคืน examples แบบคงที่จาก spec ของคุณ เพิ่ม -d (dynamic) และ Prism จะสร้างข้อมูลแบบสุ่มแต่ถูกต้องจากสคีมา พร้อมรองรับ Faker ผ่านส่วนขยาย x-faker เป็นโอเพนซอร์ส มีน้ำหนักเบา และเน้น spec เป็นหลักอย่างแท้จริง หากสัญญาของคุณอยู่ในไฟล์ OpenAPI ไฟล์เดียวและคุณต้องการ CLI mock ที่บริสุทธิ์ Prism เป็นตัวเลือกที่แข็งแกร่ง
WireMock
WireMock เป็นเซิร์ฟเวอร์จำลอง HTTP ที่พัฒนามาอย่างดีและใช้ Java คุณเรียกใช้ jar แบบสแตนด์อโลน:
java -jar wiremock-standalone-3.x.x.jar --port 9099

โมเดลหลักของมันคือการสร้าง stub: คุณกำหนดกฎการจับคู่คำขอและการตอบสนองที่ส่งคืนผ่าน JSON API หรือไฟล์ JSON นอกจากนี้ยังบันทึกและเล่นซ้ำการรับส่งข้อมูลจากบริการจริง ซึ่งมีประโยชน์เมื่อคุณไม่มี spec แต่มีแบ็กเอนด์ที่ใช้งานได้เพื่อจับภาพ WireMock โดดเด่นสำหรับการจับคู่คำขอที่ซับซ้อน สถานการณ์ที่มีสถานะ และสแตกที่ใช้ JVM เป็นหลัก
Mockoon CLI
Mockoon เป็นแอปพลิเคชันเดสก์ท็อปพร้อม CLI เสริมสำหรับการใช้งานแบบ headless CLI จะรันสภาพแวดล้อมจำลองที่คุณสร้างขึ้นบนเซิร์ฟเวอร์ ใน CI หรือที่ใดก็ตามที่คุณไม่สามารถเปิดแอปเดสก์ท็อปได้:
mockoon-cli start --data ./environment.json --port 3000

มันมาพร้อมกับอิมเมจ Docker อย่างเป็นทางการและคำสั่ง dockerize ที่สร้าง Dockerfile สำหรับอิมเมจจำลองแบบสแตนด์อโลน Mockoon ขับเคลื่อนด้วยการกำหนดค่า (คุณสร้างสภาพแวดล้อมใน GUI แล้วเรียกใช้แบบ headless) พร้อมด้วยการสร้างเทมเพลต กฎการตอบสนอง และโหมดพร็อกซี เหมาะอย่างยิ่งหากคุณชอบออกแบบด้วยภาพและปรับใช้แบบ headless
เซิร์ฟเวอร์จำลอง Apidog
Apidog เป็นแพลตฟอร์ม API แบบครบวงจร และเซิร์ฟเวอร์จำลองของมันขับเคลื่อนด้วยสคีมาเป็นหลัก เมื่อคุณกำหนดหรือนำเข้า API, Apidog จะสร้าง mock โดยไม่ต้องตั้งค่าเพิ่มเติม Smart Mock ของมันจะอ่านชื่อฟิลด์และประเภทเพื่อสร้างข้อมูลที่สมจริง: มันจดจำสิ่งต่างๆ เช่น email, avatar, username, phone, date และ IP และเติมข้อมูลด้วยค่าที่สมเหตุสมผลแทนที่จะเป็นตัวยึด string หากต้องการควบคุมอย่างเต็มที่ คุณสามารถใช้นิพจน์ Faker.js เช่น {{$person.fullName}} หรือ {{$number.int(min=1,max=100)}} รวมถึงกฎการจำลองแบบกำหนดเองสำหรับเงื่อนไขคำขอเฉพาะ

สำหรับการใช้งานแบบ headless, Apidog มี Cloud Mock URL (https://mock.apidog.com/...) ที่งาน CI หรือเพื่อนร่วมทีมใดๆ ก็ตามสามารถเรียกใช้ได้โดยไม่ต้องรันอะไรในเครื่อง นอกจากนี้ mock ในเครื่องยังทำงานบน 127.0.0.1 และคุณสามารถผูกมันกับ IP intranet ของคุณเพื่อให้เครื่องอื่นเข้าถึงได้ เนื่องจาก mock มาจากโปรเจกต์เดียวกันที่เก็บการออกแบบ API, เอกสารประกอบ และการทดสอบของคุณ จึงทำให้มันสอดคล้องกับสัญญาแทนที่จะเบี่ยงเบนไปเป็นไฟล์กำหนดค่าแยกต่างหาก
การเปรียบเทียบ
| เครื่องมือ | แหล่งความจริง | การทำงานแบบ Headless | ข้อมูลที่สมจริง | เหมาะสำหรับ |
|---|---|---|---|---|
| Prism | ไฟล์ OpenAPI / Postman | prism mock spec.yaml |
โหมด Dynamic (-d) + x-faker |
การจำลอง CLI ที่เน้น Spec เป็นหลักอย่างแท้จริง |
| WireMock | กฎ Stub / การบันทึก | Jar แบบสแตนด์อโลน | การสร้างเทมเพลตการตอบสนอง | การจับคู่ที่ซับซ้อน, สแตก JVM, การบันทึก/เล่นซ้ำ |
| Mockoon CLI | สภาพแวดล้อมที่สร้างด้วย GUI | mockoon-cli start + Docker |
ตัวช่วยเทมเพลต | การออกแบบด้วยภาพ, การปรับใช้แบบ Headless |
| Apidog | สคีมา API ในโปรเจกต์ | Cloud Mock URL + เซิร์ฟเวอร์ในเครื่อง | Smart Mock + Faker.js | Mock ที่ขับเคลื่อนด้วยสคีมา เชื่อมโยงกับการออกแบบ เอกสารประกอบ และการทดสอบ |
ไม่มีผู้ชนะเพียงคนเดียว Prism สะอาดที่สุดหาก API ทั้งหมดของคุณเป็นไฟล์ OpenAPI ไฟล์เดียว WireMock ชนะในเรื่องความลึกของการจับคู่คำขอ Mockoon ยอดเยี่ยมหากคุณชอบสร้างด้วยภาพ Apidog เหมาะสำหรับทีมที่ต้องการ mock, สัญญา, เอกสารประกอบ และการทดสอบในที่เดียวเพื่อไม่ให้เบี่ยงเบนไป สำหรับข้อมูลเพิ่มเติม ดูสรุป เครื่องมือจำลอง API ที่ดีที่สุด ของเรา
การเรียกใช้ Mock แบบ Headless ใน CI
รูปแบบจะเหมือนกันสำหรับทุกเครื่องมือ คุณเริ่ม mock ชี้การทดสอบของคุณไปที่มัน แล้วปิดมัน
Mock CLI ที่เน้น spec เป็นหลักในขั้นตอน pipeline จะมีลักษณะดังนี้:
# เริ่ม mock ในพื้นหลัง
prism mock ./openapi.yaml &
MOCK_PID=$!
# เรียกใช้การทดสอบ frontend หรือ API ของคุณกับ http://127.0.0.1:4010
npm test
# ล้างข้อมูล
kill $MOCK_PID
ด้วย Apidog คุณสามารถข้ามการรันอะไรก็ได้โดยชี้การทดสอบไปที่ Cloud Mock URL หรือรัน mock ในเครื่องด้วยวิธีเดียวกัน Mock จะตอบกลับจากสคีมาปัจจุบันของคุณ ดังนั้นเมื่อสัญญาเปลี่ยน mock ก็จะเปลี่ยนตามไปด้วย
ขั้นตอนต่อไปคือการทดสอบกับ mock นั้นจากบรรทัดคำสั่ง Apidog CLI (apidog-cli) เป็นแบบ headless ด้วยตัวมันเอง: apidog run จะดำเนินการ scenarios การทดสอบของคุณใน CI, รองรับการรันแบบขับเคลื่อนด้วยข้อมูลจาก CSV หรือ JSON และเขียนรายงานในรูปแบบ CLI, HTML หรือ JSON คำแนะนำใน ทดสอบ REST API จากบรรทัดคำสั่ง แสดงวงจรทั้งหมด และ คู่มือ CLI ฉบับสมบูรณ์ ครอบคลุมแฟล็กต่างๆ หากคุณเคยใช้ Newman การเปรียบเทียบ Apidog CLI กับ Postman CLI จะแสดงแนวคิดที่เหมือนกัน
Mocks และ AI Coding Agents
หากคุณเขียนโค้ดด้วย Cursor, Claude หรือ VS Code, agent ของคุณจะได้รับประโยชน์จากการรู้สัญญา API ที่อยู่เบื้องหลัง mock เซิร์ฟเวอร์ Apidog MCP ช่วยให้ AI agent อ่านข้อกำหนด API ของคุณได้โดยตรง เพื่อให้สามารถสร้างโค้ดไคลเอ็นต์ที่ตรงกับสคีมาที่ mock ของคุณกำลังให้บริการอยู่ สิ่งนี้ทำให้ผลลัพธ์ของ agent และการตอบสนองของ mock ของคุณชี้ไปที่สัญญาเดียวกัน
คำถามที่พบบ่อย
Mock แบบ Headless เหมือนกับ Mock Server หรือไม่?
ใช่ มีรายละเอียดอย่างหนึ่ง Mock Server คือกระบวนการใดๆ ที่ตอบสนองคำขอด้วยการตอบสนองปลอม “Headless” ระบุว่ามันทำงานโดยไม่มี GUI โดยเริ่มด้วยคำสั่งหรือโฮสต์ที่ URL เพื่อให้มันทำงานใน CI, Docker และสคริปต์ เครื่องมือทุกตัวในที่นี้สามารถทำงานแบบ headless ได้
ฉันสามารถสร้าง Mock แบบ Headless จาก OpenAPI spec ของฉันได้หรือไม่?
ได้ Prism อ่าน OpenAPI ได้โดยตรง และ Apidog สร้าง mock จากสคีมาในโปรเจกต์ของคุณ Mock ที่ขับเคลื่อนด้วย Spec ช่วยประหยัดความพยายามและอยู่ใกล้ชิดกับสัญญามากขึ้น เนื่องจาก mock จะสะท้อนสิ่งที่ Spec ระบุไว้ แทนที่จะเป็น config ที่ดูแลแยกต่างหาก ดู คู่มือการจำลอง API ของเราสำหรับเวิร์กโฟลว์เต็มรูปแบบ
Mock แบบ Headless ส่งคืนข้อมูลที่สมจริงแทนตัวยึดตำแหน่งได้อย่างไร?
แต่ละเครื่องมือมีเอนจินข้อมูล โหมดไดนามิกของ Prism และ x-faker สร้างค่าจากสคีมา Smart Mock ของ Apidog จะจับคู่ชื่อฟิลด์เช่น email หรือ phone กับค่าที่สมเหตุสมผล และคุณสามารถใช้ expression ของ Faker.js เพื่อการควบคุมที่ละเอียดยิ่งขึ้น หากไม่มีสิ่งเหล่านี้ mock มักจะส่งคืนสตริงว่างเปล่าและเลขศูนย์
ฉันจำเป็นต้องรันเซิร์ฟเวอร์ หรือสามารถใช้ URL mock ที่โฮสต์ได้?
ทั้งสองวิธีใช้ได้ผล WireMock, Prism และ Mockoon CLI จะรันกระบวนการที่คุณจัดการ Apidog เพิ่ม Cloud Mock URL ที่โฮสต์ซึ่งงาน CI หรือเพื่อนร่วมทีมใดๆ ก็ตามสามารถเรียกใช้ได้โดยไม่ต้องตั้งค่าในเครื่อง ซึ่งช่วยลดหนึ่งส่วนที่ต้องดูแลออกจาก pipeline
สรุป
เครื่องมือจำลอง API แบบ Headless คือความแตกต่างระหว่าง mock ที่ช่วยให้คุณคลิกไปรอบๆ ในเครื่อง กับ mock ที่ทำงานจริงใน pipeline ของคุณ Prism, WireMock และ Mockoon CLI แต่ละตัวก็ทำได้ดีในสไตล์การทำงานของมัน หากคุณต้องการให้ mock ยังคงเชื่อมโยงกับการออกแบบ API, เอกสารประกอบ และการทดสอบของคุณ แทนที่จะอยู่ใน config ของตัวเองที่เบี่ยงเบนไป Apidog จะเก็บทุกอย่างไว้ในโปรเจกต์เดียว ด้วย mock ที่ขับเคลื่อนด้วยสคีมาซึ่งทำงานในเครื่องหรือจาก URL ที่โฮสต์ ดาวน์โหลด Apidog เพื่อสร้าง mock จาก spec ของคุณและชี้ CI ของคุณไปที่มัน
