ทำไมต้อง wiremock 😊
wiremock เป็นเครื่องมือในการจำลองข้อมูล ช่วยให้สามารถทำงานได้อย่างมีประสิทธิภาพ และมีไว้ test API ซึ่งจะช่วยในการจำลองข้อมูลของ API ที่มี request และ response ส่งไปที่ service อื่น เมื่อ API ของ service อื่นไม่สามารถทำงานได้ หรือไม่ได้เปิด service Network ล่ม ก็สามารถทำ wiremock มาจำลองข้อมูลแทนได้
โครงสร้างในการเขียน wiremock
- สร้าง folder ชื่อว่า wiremock ขึ้นมา
- สร้าง folder ที่อยู่ภายใต้ wiremock ชื่อว่า stubs
- สร้าง folder ที่อยู่ภายใต้ stubs ชื่อว่า __files
3.1 สร้าง folder โดยตั้งชื่อ ตามเรื่องที่เขียนหรือตามชื่อโปรเจคที่เกี่ยวข้อง เพื่อไว้เก็บ file สำหรับ response API
3.2 สร้าง file ที่อยู่ภายใต้ (3.1) โดยการตั้งชื่อตาม method-storyname.json เช่น post-employee.json
ตัวอย่าง
4. สร้าง folder ที่อยู่ภายใต้ stubs ชื่อว่า mapping เพื่อไว้เก็บ file สำหรับ mapping API
4.1 สร้าง folder โดยตั้งชื่อ ตามเรื่องที่เขียนหรือตามชื่อโปรเจคที่เกี่ยวข้อง
4.2 สร้าง file ที่อยู่ภายใต้ (4.1) โดยการตั้งชื่อตาม method-storyname.json เช่น post-employee.json
ตัวอย่าง
request
method → ชื่อ method ของ API ที่จะยิงไป
url → ชื่อของ API
response
status → ตามที่ expect ไว้ เป็น 200/204/400/500
bodyFileName → ชื่อ folder(ข้อ 3.1)/ชื่อ file (ข้อ 3.2) เพื่อที่จะได้เอา response ที่ mock ไว้
headers → เป็น default ที่เอาไว้ allow สิทธิ(สามารถ copy ได้เลย)
การตั้งค่าก่อนที่จะ run wiremock ใน file docker-compose-ci.yml
คำสั่งในการ run wiremock
docker-compose -f .\docker-compose-ci.yml up — build
ตัวอย่างที่ run ผ่าน windown powerShell
- เข้าไปที่ path ของ project ที่ต้องการรันใน windown powerShell
- ใส่คำสั่งในการ run แล้ว enter