สร้าง JSON API Server ด้วย json-server และ Faker
JSON API Server?
จุดเริ่มต้นมันมาจากความต้องการของผมที่อยากมี mock server ไว้ในเครื่อง dev ตัวเอง ที่สามารถจัดการ schema-model ได้อิสระ ไม่ต้องมารอ deploy-team จัดการให้ ก็ในเมื่อเราคุยกันแล้วว่า model เราจะคุยจาก A -> B ด้วย key-value อะไร
ดังนั้น คงดีกว่า ถ้าผมสามารถ map model ให้กับ UI component ของผมได้ และมี mock data ไว้เทส ซึ่งผมสามารถจำลอง scenario ได้หลากหลาย ด้วยตัวผมเอง
เริ่มกันเลยดีกว่า…
(ขอข้ามขั้นตอน setup node ในเครื่องนะครับ)
- ทำการติดตั้ง json-server
npm install -g json-server
2. ติดตั้ง Fake เพื่อเป็นตัว generate mock data ในรูปแบบ JSON
npm install faker
3. สร้าง model: products.js
ทำการสร้างไฟล์ products.js ซึ่งจะเป็นไฟล์ไว้ สร้างชุดข้อมูล ไว้ใน /src/mock/products.js
4. ทำการสร้างไฟล์ db.json ทำหน้าที่เหมือน router ในการอ่านไฟล์ mock data
5. แก้ไข package.json เล็กน้อย เพื่อสร้างคำสั่งไว้รัน mock server
"scripts": { "mock": "json-server ./src/db.js --config json-server.json"
}
6. แค่นี้ก็เสร็จแล้วสำหรับ json mock server แบบง่ายๆ
ลองเทสดู
npm run mock
ผลลัพธ์ที่ได้
นั่นหมายความว่าตอนนี้ mock server ได้ถูกรันเรียบร้อยแล้วครับ เมื่อเข้าไปดู จะพบว่าเราได้หน้าตาแบบนี้
และเมื่อลองเทส /products ที่เราสร้างก็จะได้หน้าตา JSON มาแบบนี้
สุดท้ายก็ต้องลองศึกษาเพิ่มเติมครับ เพราะนี่เป็นตัวอย่างง่ายๆในการ สร้าง API server เพื่อเทส แบบคร่าวๆครับผม และสองลิงค์ข้างล่างนี้ เป็นเอกสารในการศึกษาเพิ่มเติม โดย Faker นั้น จะเป็นตัว mock data ขึ้นมา ซึ่งมี method มากมายให้เราได้สร้างชุดข้อมูลตามที่เราต้องการได้ครับ
และสามารถดูโค๊ดทั้งหมดได้ที่นี่