โปรเจกต์ตัวอย่าง REST API ด้วย Go และ Fiber พร้อมฐานข้อมูล MySQL
แอปพลิเคชันนี้ใช้:
- Go
- Fiber (Web framework)
- GORM (ORM)
- MySQL
แบ่งงานตามหลัก SRP ให้ชัดเจน:
main.goสำหรับเริ่มต้นแอปและลงทะเบียน routedatabase/สำหรับเชื่อมต่อและ migrationcontrollers/สำหรับจัดการ request logicmodels/สำหรับโครงสร้างข้อมูลและ scopesroutes/สำหรับจัดกลุ่ม route และ middleware
- ติดตั้ง Go
- เปิดเทอร์มินัลที่โฟลเดอร์โปรเจกต์
- ติดตั้ง dependency
cd c:\Users\praew_\OneDrive\Documents\go-fiber-test
go mod download- ตั้งค่า MySQL
ใช้ค่าเริ่มต้นใน database/database.go:
- user:
root - password: `` (ว่าง)
- host:
127.0.0.1 - port:
3306 - database:
golang_test
go run main.goจากนั้นเข้าถึง API ได้ที่ http://localhost:3000
GET /api/v1/- ต้องใช้ Basic Auth:gofiber/21022566POST /api/v1/- ต้องใช้ Basic AuthGET /api/v1/user-params/:name- ต้องใช้ Basic AuthGET /api/v1/fact/:number- ต้องใช้ Basic AuthPOST /api/v1/inet- ต้องใช้ Basic Auth
GET /api/v1/dog- ดึงข้อมูลสุนัขทั้งหมดGET /api/v1/dog/filter?search=<id>- หา dog ตาม dog_idGET /api/v1/dog/json- ผลลัพธ์ dog ในรูปแบบ JSONGET /api/v1/dog/json-v2- ผลลัพธ์ dog พร้อมสรุปสีPOST /api/v1/dog/seed- สร้างข้อมูล dummy ของสุนัขGET /api/v1/dog/deleted- ดูสุนัขที่ถูกลบแล้วGET /api/v1/dog/range- ดูสุนัขตามช่วง dog_idPOST /api/v1/dog- เพิ่มสุนัขใหม่PUT /api/v1/dog/:id- อัปเดตสุนัขDELETE /api/v1/dog/:id- ลบสุนัข
GET /api/v1/user- ดึงข้อมูลโปรไฟล์ผู้ใช้งานGET /api/v1/user/generations- สรุปผู้ใช้งานตาม generationGET /api/v1/user/search?search=<keyword>- ค้นหาผู้ใช้งานPOST /api/v1/user/seed- สร้างข้อมูลโปรไฟล์ผู้ใช้งานแบบ dummy (Basic Auth:testgo/23012023)POST /api/v1/user- เพิ่มผู้ใช้งานใหม่ (Basic Auth)PUT /api/v1/user/:id- อัปเดตผู้ใช้งาน (Basic Auth)DELETE /api/v1/user/:id- ลบผู้ใช้งาน (Basic Auth)
GET /api/v1/company/- ดึงข้อมูลบริษัททั้งหมดGET /api/v1/company/:id- ดึงข้อมูลบริษัทตาม IDPOST /api/v1/company/- เพิ่มบริษัทPUT /api/v1/company/:id- อัปเดตบริษัทDELETE /api/v1/company/:id- ลบบริษัท
GET /api/v2/- เทสเวอร์ชัน 2GET /api/v3/:name?tax_id=<tax_id>- แปลง tax_id เป็น ASCII codes
main.gocontrollers/database/models/routes/
ไฟล์นี้ช่วยให้เข้าใจ flow ของโปรเจกต์ และสะดวกสำหรับการทดสอบ API ด้วย Postman หรือ curl