ตอนที่ 1 เริ่มต้นเขียน API ด้วยภาษา Go (Fiber) 🔥

suphakit
3 min readSep 5, 2023

--

ในบทความนีเราจะมาหัดเขียน 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")
}

อธิบายคร่าวๆ 💭

  1. app := fiber.New() ใช้สร้างตัว Instance ของ Fiber ที่ไว้ใช้เก็บ Context ต่างๆ
  2. app.Get("/", ... } สร้าง route ที่มี path ”/”และใช้ method get พร้อมใส่ Handler Function ด้วยการส่ง Response เป็น hello world 🌈
  3. app.Listen(":3000") เพื่อให้ Fiber เปิด HTTP server รอรับ request ที่ port 3000 นั่นเอง
  4. ใช้คำสั่งเพื่อรันไฟล์ 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")
}

อธิบายคร่าวๆ 💭

  1. ทำการเพิ่ม 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,
}

ในตอนที่ 2 เราจะมาลุยกันต่อกับ Method ตัวอื่นๆ (Post, Get, Put, Delete) กันนะครับ ขอบคุณที่แวะเข้ามาอ่านนะครับผม กราบๆๆๆ 🙏🏻🙏🏻🙏🏻

--

--