สร้าง 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 ในเครื่องนะครับ)

  1. ทำการติดตั้ง 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

ผลลัพธ์ที่ได้

CLI Log

นั่นหมายความว่าตอนนี้ mock server ได้ถูกรันเรียบร้อยแล้วครับ เมื่อเข้าไปดู จะพบว่าเราได้หน้าตาแบบนี้

http://localhost:5000

และเมื่อลองเทส /products ที่เราสร้างก็จะได้หน้าตา JSON มาแบบนี้

JSON Result

สุดท้ายก็ต้องลองศึกษาเพิ่มเติมครับ เพราะนี่เป็นตัวอย่างง่ายๆในการ สร้าง API server เพื่อเทส แบบคร่าวๆครับผม และสองลิงค์ข้างล่างนี้ เป็นเอกสารในการศึกษาเพิ่มเติม โดย Faker นั้น จะเป็นตัว mock data ขึ้นมา ซึ่งมี method มากมายให้เราได้สร้างชุดข้อมูลตามที่เราต้องการได้ครับ

และสามารถดูโค๊ดทั้งหมดได้ที่นี่

--

--

Teerapong Singthong 👨🏻‍💻
Teerapong Singthong 👨🏻‍💻

Written by Teerapong Singthong 👨🏻‍💻

Engineering Manager, ex-Solution Engineering Lead at LINE | Tech | Team Building | System Design | Architecture | SWE | Large Scaling System