คุณกำลังอยู่ในช่วงเวลาที่เร่งรีบ ทีมฟรอนต์เอนด์พร้อมที่จะเริ่มสร้างแล้ว แต่ API แบ็กเอนด์ยังอยู่ในขั้นตอนการออกแบบ หรือบางทีคุณกำลังทดสอบว่าแอปพลิเคชันของคุณจัดการกับความล้มเหลวของ API, การตอบสนองที่ช้า หรือกรณีพิเศษบางอย่างอย่างไร คุณต้องการการตอบสนองของ API ที่สมจริง แต่คุณไม่สามารถหรือไม่ต้องการพึ่งพาบริการคลาวด์ภายนอกได้
นี่คือจุดที่เซิร์ฟเวอร์จำลอง API แบบโฮสต์เอง (self-hosted API mock servers) โดดเด่น พวกมันให้การควบคุม ความเป็นส่วนตัว และความยืดหยุ่นอย่างสมบูรณ์ในการจำลอง API บนโครงสร้างพื้นฐานของคุณเอง ไม่ว่าคุณจะกำลังพัฒนาในสภาพแวดล้อมองค์กรที่แยกขาดจากอินเทอร์เน็ต (air-gapped), กังวลเกี่ยวกับความเป็นส่วนตัวของข้อมูล หรือเพียงแค่ต้องการให้ทุกอย่างทำงานบนเครื่องของคุณเองเพื่อความเร็ว การโฮสต์เซิร์ฟเวอร์จำลองของคุณเองเป็นกลยุทธ์ที่มีประสิทธิภาพ
แต่ด้วยตัวเลือกที่มีอยู่มากมาย คุณจะเลือกตัวเลือกที่เหมาะสมได้อย่างไร? คุณควรใช้เครื่องมือเฉพาะ หรือสร้างขึ้นมาเอง?
หากคุณเบื่อหน่ายกับการพึ่งพาบริการภายนอกสำหรับเวิร์กโฟลว์การพัฒนาของคุณ คู่มือนี้เหมาะสำหรับคุณ เราจะสำรวจภาพรวมของเซิร์ฟเวอร์จำลองแบบโฮสต์เอง เปรียบเทียบตัวเลือกชั้นนำ และช่วยคุณค้นหาสิ่งที่เหมาะสมที่สุดสำหรับทีมของคุณ
หากองค์กรของคุณต้องการเก็บข้อกำหนด API, ข้อมูลจำลอง และทราฟฟิกทั้งหมดไว้ในโครงสร้างพื้นฐานของคุณเอง ไม่ว่าจะเป็นเพื่อความเป็นส่วนตัว การปฏิบัติตามข้อกำหนด หรือข้อกำหนดเครือข่ายภายใน คุณสามารถรัน Apidog's self-hosted mock runner ได้โดยตรงบนเซิร์ฟเวอร์หรือคลาวด์ส่วนตัวของคุณ
ทีนี้ มาสำรวจตัวเลือกแบบโฮสต์เองของคุณกัน!
1. WireMock: เซิร์ฟเวอร์จำลองระดับองค์กร

ภาพรวม: WireMock เป็นเซิร์ฟเวอร์จำลองโอเพนซอร์สที่ทรงพลังและมีฟีเจอร์ครบถ้วนที่สุดเท่าที่มีอยู่ มันใช้ภาษา Java เป็นหลัก แต่สามารถรันเป็นเซิร์ฟเวอร์แบบสแตนด์อโลนหรือฝังในชุดทดสอบของคุณได้
คุณสมบัติหลัก:
- บันทึกและเล่นซ้ำ: ดักจับทราฟฟิกจาก API จริงและเล่นซ้ำเป็นเซิร์ฟเวอร์จำลอง
- การสร้างเทมเพลตการตอบกลับแบบไดนามิก: ใช้ Handlebars หรือเอนจินการสร้างเทมเพลตอื่นๆ เพื่อสร้างการตอบกลับแบบไดนามิก
- พฤติกรรมแบบมีสถานะ: จำลองการเปลี่ยนแปลงสถานะในคำขอหลายรายการ (เช่น ทรัพยากรถูกสร้างขึ้นแล้วถูกเรียกใช้)
- การจำลองข้อผิดพลาด: จำลองความล้มเหลวของเครือข่าย, ความล่าช้า และการตอบกลับที่ผิดรูปแบบได้อย่างง่ายดาย
- การจับคู่คำขอ: การจับคู่ที่ยืดหยุ่นอย่างไม่น่าเชื่อบนส่วนหัว, เนื้อหาบอดี้ (JSON, XML), พารามิเตอร์การสอบถาม และคุกกี้
สิ่งที่ WireMock ทำได้ดีเยี่ยม:
- การควบคุมที่สมบูรณ์
- Stubs ที่ปรับแต่งได้สูง
- สามารถจำลองความล่าช้า, ข้อผิดพลาด, โฟลว์แบบมีสถานะ
- เหมาะสำหรับไมโครเซอร์วิส
- รันได้ผ่าน Java, Docker หรือแบบสแตนด์อโลน
ข้อเสีย:
- ไม่มี UI แบบกราฟิก
- ไม่มีการทำงานร่วมกัน
- ไม่มีเอกสารอัตโนมัติ
- ยากสำหรับผู้ใช้ที่ไม่ใช่สายเทคนิค
- รองรับเฉพาะ REST (ไม่มีการรองรับ GraphQL หรือ WebSocket โดยกำเนิด)
ตัวเลือกการติดตั้ง:
- Standalone JAR: รันด้วย
java -jar wiremock-standalone.jar - Docker Container:
docker run -it --rm -p 8080:8080 wiremock/wiremock - ฝังในชุดทดสอบ: ใช้เป็นไลบรารีในชุดทดสอบ Java, JUnit หรือ Spring Boot ของคุณ
เหมาะสำหรับ: ทีมที่ต้องการการจำลองระดับอุตสาหกรรม โดยเฉพาะในระบบนิเวศ Java/Kotlin หรือสำหรับสถานการณ์การทดสอบที่ซับซ้อน
2. MockServer: ขุมพลังที่ไม่ขึ้นกับโปรโตคอล
ภาพรวม: MockServer เป็นอีกหนึ่งคู่แข่งที่ใช้ Java เป็นหลัก ซึ่งโดดเด่นเป็นพิเศษในการจำลองไม่เพียงแค่ HTTP แต่ยังรวมถึง HTTPS, WebSockets และแม้แต่ SMTP
คุณสมบัติหลัก:
- รองรับหลายโปรโตคอล: จำลอง HTTP, HTTPS, WebSockets ได้ทันที
- การจัดการความคาดหวัง: API ที่ชัดเจนสำหรับการตั้งค่าว่าคำขอใดควรส่งการตอบกลับแบบใด
- การสร้างเทมเพลตด้วย JavaScript: ใช้ JavaScript เพื่อสร้างการตอบกลับแบบไดนามิก
- การตรวจสอบ: ตรวจสอบว่ามีคำขอที่ระบุเกิดขึ้นระหว่างการทดสอบหรือไม่
- โหมดพร็อกซี: สามารถทำหน้าที่เป็นพร็อกซีเพื่อบันทึกหรือปรับเปลี่ยนทราฟฟิก
การติดตั้ง:
- Docker:
docker run -d --rm -p 1080:1080 mockserver/mockserver - Java: รันเป็นแบบสแตนด์อโลนหรือฝังในชุดทดสอบ
เหมาะสำหรับ: ทีมที่ต้องการจำลอง API ที่ซับซ้อนกว่า REST API ทั่วไป (เช่น WebSockets) หรือผู้ที่ชื่นชอบ API สำหรับการกำหนดความคาดหวังที่ชัดเจน
3. JSON Server: เซิร์ฟเวอร์จำลอง REST แบบไม่ต้องเขียนโค้ด
ภาพรวม: JSON Server เป็นเครื่องมือ Node.js ที่เรียบง่ายอย่างน่าทึ่ง ซึ่งสร้าง REST API ปลอมที่สมบูรณ์จากไฟล์ JSON ไฟล์เดียวได้ในเวลาไม่ถึง 30 วินาที
ข้อดี:
- น้ำหนักเบามาก
- ไม่ต้องตั้งค่าใดๆ
- เหมาะสำหรับสร้างต้นแบบขนาดเล็ก
ข้อเสีย:
- ไม่เหมาะสำหรับเวิร์กโฟลว์ API จริง
- ไม่มีการทำงานร่วมกัน
- ไม่มีระบบสภาพแวดล้อม
- ไม่มีระบบอัตโนมัติ
วิธีการทำงาน: คุณสร้างไฟล์ db.json:
{
"posts": [
{ "id": 1, "title": "First Post", "author": "Jane" }
],
"comments": [
{ "id": 1, "body": "Great post!", "postId": 1 }
]
}
จากนั้นรัน json-server --watch db.json คุณก็จะมี REST endpoints พร้อมใช้งานทันที:
GET /postsGET /posts/1POST /postsPUT /posts/1DELETE /posts/1GET /posts/1/comments(ความสัมพันธ์)
เหมาะสำหรับ: นักพัฒนาฟรอนต์เอนด์ที่ต้องการ REST API สำหรับการสร้างต้นแบบที่รวดเร็วและไม่ต้องตั้งค่าใดๆ มันอาจไม่ยืดหยุ่นเท่าสำหรับสถานการณ์ที่ซับซ้อน แต่ตั้งค่าได้เร็วอย่างไม่น่าเชื่อ
4. Postman Mock Server (โฮสต์เอง)
ภาพรวม: แม้ว่า Postman จะเป็นที่รู้จักจากคุณสมบัติคลาวด์ แต่ก็มี Postman's open-source mock server ที่คุณสามารถรันบนเครื่องของคุณเองได้
วิธีการทำงาน: คุณกำหนด API ของคุณใน Postman Collection จากนั้นใช้ Newman CLI (เครื่องมือรันคอลเลกชันแบบคอมมานด์ไลน์ของ Postman) พร้อมส่วนขยาย mock server
คุณสมบัติหลัก:
- ใช้ประโยชน์จาก Postman Collections: หากทีมของคุณใช้ Postman สำหรับการออกแบบ/ทดสอบ API อยู่แล้ว นี่เป็นสิ่งที่เข้ากันได้ดี
- อิงตามตัวอย่าง: การตอบกลับจะอิงตามตัวอย่างที่คุณบันทึกไว้ในคอลเลกชันของคุณ
- การบูรณาการกับ CI/CD: สามารถรันผ่าน Newman ใน pipeline ของคุณได้
การติดตั้ง: การตั้งค่าที่ซับซ้อนขึ้นเกี่ยวข้องกับ Node.js, Newman และโมดูล mock server
เหมาะสำหรับ: ทีมที่ใช้ Postman Ecosystem อย่างลึกซึ้งอยู่แล้ว และต้องการนำการจำลองมาไว้ในองค์กร
5. Prism (Stoplight)

ภาพรวม: Prism เป็นเซิร์ฟเวอร์จำลองโอเพนซอร์สจาก Stoplight ที่สร้างขึ้นเป็นพิเศษสำหรับข้อกำหนด OpenAPI (เดิมคือ Swagger)
คุณสมบัติหลัก:
- OpenAPI-First: มันตรวจสอบคำขอเทียบกับข้อกำหนด OpenAPI ของคุณและส่งคืนข้อผิดพลาดที่เหมาะสม
- ตัวอย่างแบบไดนามิก: สามารถสร้างข้อมูลจำลองที่สมจริงตาม Schema ของคุณ (เช่น ที่อยู่อีเมล, ชื่อแบบสุ่ม)
- โหมดพร็อกซี: สามารถทำหน้าที่เป็นพร็อกซีการตรวจสอบระหว่างไคลเอนต์ของคุณและ API จริง
- การจำลอง HTTP: จำลองพฤติกรรม HTTP ที่แตกต่างกัน
ประโยชน์:
- เป็นไปตามข้อกำหนดของคุณอย่างเคร่งครัด
- สามารถตรวจสอบคำขอได้
- ใช้ CLI และพร้อมสำหรับ Docker
- ทำงานได้ดีกับ CI/CD
ข้อจำกัด:
- ไม่มี UI
- ไม่มีการทำงานร่วมกัน
- ไม่มีตรรกะการจำลองขั้นสูง
- ไม่เหมาะสำหรับผู้ใช้ที่ไม่ใช่สายเทคนิค
การติดตั้ง: มีให้ใช้งานในรูปแบบเครื่องมือ CLI หรือ Docker container
docker run --rm -it -p 4010:4010 stoplight/prism:4 mock -h 0.0.0.0 <https://raw.githubusercontent.com/OAI/OpenAPI-Specification/main/examples/v3.0/petstore.yaml>
เหมาะสำหรับ: ทีมที่ใช้การออกแบบ API-first ด้วย OpenAPI/Swagger และต้องการการจำลองที่สอดคล้องกับข้อกำหนด
6. Mountebank
ภาพรวม: Mountebank มีแนวทางที่ไม่เหมือนใคร ไม่ใช่แค่เซิร์ฟเวอร์จำลอง HTTP เท่านั้น แต่ยังเป็น test double ที่สามารถจำลอง โปรโตคอลใดๆ ได้โดยการขยายขีดความสามารถ
คุณสมบัติหลัก:
- หลายโปรโตคอล: รองรับ HTTP, HTTPS, TCP และ SMTP เป็นหลัก โปรโตคอลอื่นๆ สามารถเพิ่มได้
- เขียนสคริปต์ได้: ใส่ตรรกะ JavaScript/Node.js ที่กำหนดเองสำหรับการตอบกลับที่ซับซ้อน
- Imposters: การจำลองแต่ละรายการเรียกว่า "imposter" ที่มีพอร์ตและโปรโตคอลของตัวเอง
- Predicates: ตรรกะการจับคู่คำขอที่ซับซ้อน
การติดตั้ง: แอปพลิเคชัน Node.js ทำงานเป็นบริการ
เหมาะสำหรับ: ทีมที่ต้องการจำลองโปรโตคอลที่ไม่ใช่ HTTP หรือผู้ที่ต้องการความยืดหยุ่นสูงสุดผ่านการเขียนสคริปต์
7. Mirage JS (เซิร์ฟเวอร์จำลองที่เน้นฟรอนต์เอนด์)

Mirage ถูกสร้างขึ้นสำหรับนักพัฒนาฟรอนต์เอนด์ที่ใช้:
- React
- Vue
- Svelte
- Ember
- Next.js
มันสร้าง mock API ภายในแอปพลิเคชันฟรอนต์เอนด์ของคุณ
ข้อดี:
- เหมาะสำหรับทีมที่เน้นฟรอนต์เอนด์
- ทำงานแบบออฟไลน์ได้
- ผสานรวมโดยตรงกับการพัฒนา UI
- อนุญาตให้มีการจำลองแบบมีสถานะ
ข้อเสีย:
- ไม่ใช่การจำลองเครือข่ายจริง
- ไม่เหมาะสำหรับแบ็กเอนด์หรือ QA
- มีอยู่เฉพาะในเลเยอร์ฟรอนต์เอนด์
ใช้ประโยชน์จาก Apidog ในฐานะ Self-hosted Mock Server และอื่นๆ

เครื่องมือเซิร์ฟเวอร์จำลองส่วนใหญ่จะเน้นที่ การจำลองเท่านั้น หากคุณกำลังมองหาแพลตฟอร์ม API ที่สมบูรณ์แบบ ซึ่งรวมถึง เซิร์ฟเวอร์จำลอง, การออกแบบ API, การทำงานร่วมกัน, การดีบัก, เอกสารประกอบ, การทดสอบ และระบบอัตโนมัติ Apidog ถือเป็นตัวเลือกอันดับต้นๆ
จุดแข็งที่สำคัญอย่างหนึ่งของ Apidog คือรองรับทั้ง:
ดังนั้นสำหรับองค์กรที่ต้องการการจำลองแบบส่วนตัวและแยกส่วน Apidog's self-hosted mock runner มอบประโยชน์ทั้งหมดของแพลตฟอร์มคลาวด์ แต่รันบนโครงสร้างพื้นฐานของคุณเอง
Apidog แตกต่าง
มันช่วยให้ทีมจัดการ วงจรชีวิตของ API ทั้งหมด รวมถึง:
- การออกแบบ API
- เอกสาร API
- การทดสอบ API
- การสร้าง Mock
- การทำงานร่วมกัน
- สภาพแวดล้อมและตัวแปร
- เวิร์กโฟลว์ CI/CD
- การอนุญาต/บทบาท
- การซิงค์ทีมทั่วโลก
- ตัวเลือก mock แบบโฮสต์เองและ cloud mock
ความสามารถในการจำลองของ Apidog
- การตอบกลับจำลองที่สร้างขึ้นโดยอัตโนมัติจากข้อกำหนด API
- เทมเพลตการตอบกลับแบบไดนามิกและอิงตามกฎ
- ตัวสร้างข้อมูลแบบสุ่ม (เช่น ชื่อ, อีเมล, ที่ตั้ง)
- การจำลองหลายสภาพแวดล้อม
- การทำงานร่วมกันของทีมแบบบูรณาการ
- ตัวเลือก mock runner แบบโฮสต์เอง
- ตัวเลือก cloud mock
- การควบคุมการเข้าถึงตามบทบาท
- การจำลองแบบไม่ต้องเขียนโค้ดหรือแบบสคริปต์ขั้นสูง
self-hosted runner เหมาะสำหรับทีมที่ต้องการ:
- การติดตั้งภายในองค์กร
- สภาพแวดล้อมคลาวด์ส่วนตัว
- เครือข่ายการพัฒนาภายใน
- เวิร์กโฟลว์ข้อมูลที่ละเอียดอ่อนสูง
- การจำลองขนาดใหญ่สำหรับไมโครเซอร์วิส
แทนที่จะนำเครื่องมือหลายๆ อย่างมารวมกัน Apidog มอบแพลตฟอร์มเดียวให้คุณ ซึ่ง:
ออกแบบ → จำลอง → ทดสอบ → จัดทำเอกสาร → แชร์
ทั้งหมดเกิดขึ้นในระบบนิเวศที่เป็นหนึ่งเดียว
สำหรับทีมขนาดใหญ่ ความต้องการระดับองค์กร หรือองค์กรวิศวกรรมระดับโลก นี่คือข้อได้เปรียบที่สำคัญ
ทำไมต้องเลือก Self-Hosted Mock Server?
เซิร์ฟเวอร์จำลอง API แบบโฮสต์เองคือบริการที่คุณรันบนโครงสร้างพื้นฐานของคุณเอง ไม่ว่าจะภายในองค์กร บนคลาวด์ส่วนตัวของบริษัท บน VM หรือภายใน Docker ซึ่งจะส่งการตอบกลับจำลองสำหรับ API endpoints
ก่อนที่เราจะดูเครื่องมือเฉพาะ มาทำความเข้าใจว่าทำไมคุณถึงเลือกโฮสต์เองแทนที่จะใช้โซลูชัน SaaS
1. ความเป็นส่วนตัวและความปลอดภัยของข้อมูล
นี่คือเหตุผลที่ใหญ่ที่สุดสำหรับหลายองค์กร เมื่อคุณโฮสต์เอง ข้อกำหนด API, ข้อมูลจำลอง และทราฟฟิกของคุณจะไม่ออกจากเครือข่ายของคุณเลย นี่เป็นสิ่งสำคัญสำหรับ:
- แอปพลิเคชันด้าน การดูแลสุขภาพ (การปฏิบัติตาม HIPAA)
- บริการทางการเงิน ที่มีข้อมูลละเอียดอ่อน
- โครงการ ภาครัฐ หรือการป้องกันประเทศ
- ทีมใดๆ ที่ทำงานกับ ข้อมูลที่เป็นกรรมสิทธิ์หรือข้อมูลที่อยู่ภายใต้ข้อบังคับ
2. การพัฒนาแบบออฟไลน์
นักพัฒนาบนเครื่องบิน รถไฟ หรือในพื้นที่ที่มีอินเทอร์เน็ตไม่เสถียรยังคงสามารถทำงานต่อไปได้ เซิร์ฟเวอร์จำลองของคุณทำงานบนแล็ปท็อปของคุณเอง
3. การควบคุมและการปรับแต่งที่สมบูรณ์
คุณเป็นเจ้าของสแต็คทั้งหมด คุณสามารถ:
- แก้ไขซอร์สโค้ดได้หากจำเป็น (ด้วยเครื่องมือโอเพนซอร์ส)
- ผสานรวมอย่างลึกซึ้งกับ CI/CD pipeline ภายในของคุณ
- กำหนดค่าเครือข่าย ไฟร์วอลล์ และการเข้าถึงได้ตามที่คุณต้องการทุกประการ
- รับประกันความพร้อมใช้งาน 100% (ไม่ต้องพึ่งพาความพร้อมใช้งานของบุคคลที่สาม)
4. ความสามารถในการคาดการณ์ต้นทุน
ไม่มีบิลรายเดือนที่ไม่คาดคิดตามการใช้งาน เมื่อติดตั้งบนโครงสร้างพื้นฐานของคุณแล้ว ต้นทุนส่วนเพิ่มจะน้อยที่สุด
5. ประสิทธิภาพ
ความหน่วงของเครือข่ายถูกกำจัดออกไปสำหรับการพัฒนาในเครื่อง การตอบกลับจำลองของคุณจะกลับมาภายในเวลาไม่กี่มิลลิวินาที
สรุป: เพิ่มขีดความสามารถผ่านการควบคุม
เซิร์ฟเวอร์จำลอง API แบบโฮสต์เองนำอำนาจกลับมาอยู่ในมือคุณ มันช่วยให้การพัฒนาเร็วขึ้น การทดสอบน่าเชื่อถือขึ้น และความเป็นส่วนตัวมากขึ้น โดยยังคงการพึ่งพาภายในองค์กร
ไม่ว่าคุณจะเลือกความเรียบง่ายของ JSON Server, ความแข็งแกร่งของ WireMock หรือความสอดคล้องกับข้อกำหนดของ Prism คุณกำลังลงทุนในเวิร์กโฟลว์การพัฒนาที่ยืดหยุ่นและเป็นอิสระมากขึ้น
จำไว้ว่า เครื่องมือที่ดีที่สุดคือเครื่องมือที่เข้ากันได้ดีกับเวิร์กโฟลว์ปัจจุบันของทีมคุณและแก้ไขปัญหาเฉพาะของคุณ เริ่มต้นด้วยการพิสูจน์แนวคิดง่ายๆ รับคำติชมจากทีมของคุณ และปรับปรุงไปเรื่อยๆ ตัวคุณในอนาคตและนักพัฒนาฟรอนต์เอนด์ของคุณที่ไม่มีอุปสรรคอีกต่อไปจะขอบคุณคุณ
สำหรับหลายทีม การเริ่มต้นด้วยแพลตฟอร์มคลาวด์ที่ครอบคลุมอย่าง Apidog จะช่วยให้เข้าใจการจำลอง API สมัยใหม่ได้อย่างรวดเร็ว ซึ่งจะนำไปสู่การตัดสินใจเชิงกลยุทธ์มากขึ้นว่าจะโฮสต์เองหรือไม่และอย่างไร
