ในบทความนีเราจะมาหัดเขียน API แบบง่ายๆ กัน โดยเหมาะกับคนที่มีพื้นฐานในการเขียนโปรแกรมเบื้องต้น หากใครไม่มีก็สามารถลองทำดูคร่าวๆตามไปได้ครับ 😄
Fiber คืออะไร ?
Fiber เป็นเว็บเฟรมเวิร์กที่ได้รับแรงบันดาลใจจาก Express (Node.js เว็บเฟรมเวิร์ก) ซึ่งสร้างขึ้นบน Fasthttp ที่เป็นเอ็นจินที่เร็วที่สุดสำหรับภาษา Go มันถูกออกแบบมาเพื่อช่วยให้การพัฒนาเป็นไปอย่างราบรื่นและรวดเร็ว หากใครที่ต้องการศึกษาเพิ่มเติมเข้าไปที่เว็บไซต์ของเจ้า Fiber กันได้เลย 👉 https://docs.gofiber.io/ 🔥
Project Setup
STEP 1 : ติดตั้ง Go
เข้าไปที่เว็บไซต์ 👉 https://go.dev/dl/ เพื่อติดตั้ง Go
STEP 2 : สร้าง Directory
สร้าง Directory หรือ Folder ใหม่ขึ้นมาเพื่อใช้ทำโปรเจคต์นี้
$ mkdir go-fiber-api
STEP 3 : สร้างไฟล์ go.mod
เรียกใช้คำสั่ง $ go mod init <path>
เพื่อสร้างไฟล์ go.mod
ขึ้นมาโดย path
นั้นเราใส่เพื่อให้ง่ายต่อการจัดการ หากต้องการนำโปรเจคต์นี้ไปใช้ทำ package ของตัวเอง ในที่นี้ขอให้ทุกคนใช้เป็น github ของตัวเองนะครับ ตัวอย่างตามนี้
$ go mod init github.com/biskitsx/go-fiber-api
STEP 4 : สร้างไฟล์ main.go
สร้างไฟล์ชื่อ main.go ซึ่งจะเป็นไฟล์หลักในการใช้เขียนโปรแกรมของเรา และเพิ่มโค้ดไปดังนี้
package main
import (
"fmt"
)
func main() {
fmt.println("Hello world 🌈");
}
ทดลองรันด้วยคำสั่ง $ go run main.go
หากไม่เจอปัญหาใดๆ จะได้ผลลัพธ์ว่า Hello world 🌈
สร้าง API ด้วย Fiber กันเถอะ ✨
STEP 1 : ติดตั้ง package
ติดตั้งแพคเกจ Fiber ที่ไว้ใช้เขียน API ด้วยคำสั่งนี้บน command line ของเรา
$ go get github.com/gofiber/fiber/v2
STEP 2 : API ตัวแรก
import แพคเกจ Fiber ที่เราพึ่งติดตั้งมาไว้ในไฟล์ main.go
ของเราและเพิ่มโค้ดดังนี้
package main
import (
"fmt"
"github.com/gofiber/fiber/v2"
)
func main() {
fmt.Println("hello world")
// fiber instance
app := fiber.New()
// routes
app.Get("/", func(c *fiber.Ctx) error {
return c.SendString("hello world 🌈")
})
// app listening at PORT: 3000
app.Listen(":3000")
}
อธิบายคร่าวๆ 💭
app := fiber.New()
ใช้สร้างตัว Instance ของ Fiber ที่ไว้ใช้เก็บ Context ต่างๆapp.Get("/", ... }
สร้าง route ที่มี path”/”
และใช้ methodget
พร้อมใส่ Handler Function ด้วยการส่ง Response เป็นhello world 🌈
app.Listen(":3000")
เพื่อให้ Fiber เปิด HTTP server รอรับ request ที่ port 3000 นั่นเอง- ใช้คำสั่งเพื่อรันไฟล์
main.go
ด้วย$ go run main.go
STEP 3: มาเทส API กัน
ลองเรียก API endpoint ของเราโดยการเข้าไปที่ http://localhost:3000
ผ่าน Chrome, Firefox หรืออื่นๆ จะได้ผลลัพธ์ดังนี้
hello world 🌈
STEP 4: ลองส่ง Response เป็น JSON
ใน Step ก่อนหน้า เราส่งข้อมูลเป็น string
แต่เราจะลองส่งแบบ JSON
ด้วยโดยเพิ่มโค้ดดังนี้
package main
import (
"fmt"
"github.com/gofiber/fiber/v2"
)
func main() {
fmt.Println("hello world")
// fiber instance
app := fiber.New()
// routes
app.Get("/", func(c *fiber.Ctx) error { // STRING
return c.SendString("hello world 🌈")
})
app.Get("/info", func(c *fiber.Ctx) error { // JSON
return c.JSON(fiber.Map{
"msg": "hello world 🚀",
"go": "fiber 🥦",
"boolean": true,
"number": 1234,
})
})
// app listening at PORT: 3000
app.Listen(":3000")
}
อธิบายคร่าวๆ 💭
- ทำการเพิ่ม Route โดยใช้ Method Get เหมือนเดิม แต่มี Handler Functionใช้
c.JSON(...)
ซึ่งเป็นการบอกว่า Response ที่เราจะส่งให้เป็นประเภทไฟล์ JSON
2. ใช้ fiber.Map{}
ที่เป็นทางลัดในการสร้าง map[string]interface{}
(คล้ายๆการสร้าง Object ของ NodeJS)
ลองเรียก API endpoint ของเราโดยการเข้าไปที่ http://localhost:3000/info
จะได้ผลลัพธ์ดังนี้นั่นเอง 👀
{
msg: "hello world 🚀",
go: "fiber 🥦",
boolean: true,
number: 1234,
}
Github
ลิ้ง Github สำหรับโค้ดในบทความนี้ครับ 👇🏻
ในตอนที่ 2 เราจะมาลุยกันต่อกับ Method ตัวอื่นๆ (Post, Get, Put, Delete) กันนะครับ ขอบคุณที่แวะเข้ามาอ่านนะครับผม กราบๆๆๆ 🙏🏻🙏🏻🙏🏻