การดู : 0

12/04/2026 18:19น.

EP.14 Go กับ RESTful APIs - สร้าง API ง่ายๆ เชื่อมต่อโลกของข้อมูล!

EP.14 Go กับ RESTful APIs - สร้าง API ง่ายๆ เชื่อมต่อโลกของข้อมูล!

#การพัฒนา API

#การเขียนโปรแกรม

#JSON

#POST

#GET

#HTTP Server

#RESTful API

#Go

Go กับ RESTful APIs - สร้าง API ง่ายๆ เชื่อมต่อโลกของข้อมูล!

อยากให้โปรแกรมของคุณรับส่งข้อมูลกับแอปอื่นได้ไหม? วันนี้เรามาเรียนรู้การสร้าง RESTful APIs ด้วย Go ที่จะช่วยให้คุณดึงข้อมูล (GET) และส่งข้อมูล (POST) ได้อย่างง่ายดาย!

 

HTTP และ RESTful API คืออะไร?
HTTP (Hypertext Transfer Protocol) คือโปรโตคอลที่ใช้สื่อสารระหว่างเซิร์ฟเวอร์และไคลเอนต์ เช่น เว็บเบราว์เซอร์
RESTful API คือวิธีการสื่อสารที่ใช้ HTTP ในการรับและส่งข้อมูลระหว่างโปรแกรม โดยมีโครงสร้างที่เข้าใจง่าย เช่น การขอข้อมูล (GET) และการส่งข้อมูล (POST)

 

การสร้าง HTTP Server ง่ายๆ ใน Go
ใน Go เรามีแพ็กเกจ net/http ที่ช่วยให้เราสร้าง HTTP Server ได้อย่างง่ายดาย
ตัวอย่างโค้ด:
อธิบายโค้ด:
helloHandler คือฟังก์ชันที่จะแสดงข้อความ "Hello, World!" เมื่อมีการร้องขอ (Request) ไปที่หน้าแรกของเซิร์ฟเวอร์
http.ListenAndServe(":8080", nil) คือคำสั่งให้รัน HTTP Server บนพอร์ต 8080
เมื่อคุณรันโค้ดและเปิดเบราว์เซอร์ไปที่ http://localhost:8080 คุณจะเห็นข้อความ "Hello, World!"

package main

import (
    "fmt"
    "net/http"
)

func helloHandler(w http.ResponseWriter, r *http.Request) {
    fmt.Fprintf(w, "Hello, World!")
}

func main() {
    http.HandleFunc("/", helloHandler)
    http.ListenAndServe(":8080", nil)
}

 

สร้าง RESTful API ด้วย Go - การรับข้อมูลแบบ GET และ POST

1. การสร้าง API แบบ GET
API แบบ GET ใช้สำหรับ ดึงข้อมูล เช่น ดูรายละเอียดสินค้า ผู้ใช้งาน หรือข้อมูลทั่วไป
ตัวอย่างโค้ด:

package main

import (
    "encoding/json"
    "net/http"
)

type Product struct {
    ID    int    `json:"id"`
    Name  string `json:"name"`
    Price int    `json:"price"`
}

func getProductHandler(w http.ResponseWriter, r *http.Request) {
    product := Product{ID: 1, Name: "Laptop", Price: 1500}
    json.NewEncoder(w).Encode(product) // แปลงข้อมูลเป็น JSON แล้วส่งกลับไป
}

func main() {
    http.HandleFunc("/product", getProductHandler)
    http.ListenAndServe(":8080", nil)
}

 

เมื่อคุณเรียกดู http://localhost:8080/product คุณจะได้ข้อมูลของ product ในรูปแบบ JSON ดังนี้:

{
    "id": 1,
    "name": "Laptop",
    "price": 1500
}

 

2. การสร้าง API แบบ POST
API แบบ POST ใช้สำหรับ ส่งข้อมูล เช่น การลงทะเบียนผู้ใช้หรือเพิ่มข้อมูลใหม่
ตัวอย่างโค้ด:

package main

import (
    "encoding/json"
    "fmt"
    "net/http"
)

type User struct {
    Name string `json:"name"`
    Age  int    `json:"age"`
}

func createUserHandler(w http.ResponseWriter, r *http.Request) {
    var user User
    json.NewDecoder(r.Body).Decode(&user) // แปลง JSON ที่ได้รับให้เป็น struct User
    fmt.Fprintf(w, "User created: %s, Age: %d", user.Name, user.Age)
}

func main() {
    http.HandleFunc("/user", createUserHandler)
    http.ListenAndServe(":8080", nil)
}

 

เมื่อเราส่งข้อมูลแบบ POST ไปที่ http://localhost:8080/user โดยมีข้อมูลในรูปแบบ JSON:

{
    "name": "Alice",
    "age": 25
}

 

ผลลัพธ์ที่ได้จะเป็นข้อความยืนยันการสร้างผู้ใช้ เช่น:

User created: Alice, Age: 25

 

สรุป

  • GET ใช้ดึงข้อมูล เช่น ดูข้อมูลสินค้า ผู้ใช้ ฯลฯ
  • POST ใช้ส่งข้อมูล เช่น การลงทะเบียนผู้ใช้ เพิ่มข้อมูล ฯลฯ
  • การสร้าง API ใน Go ใช้แพ็กเกจ net/http และ JSON สำหรับรับส่งข้อมูล

สามารถลองสร้าง API สำหรับเพิ่มข้อมูลสินค้าใหม่ด้วยการใช้ POST และสร้าง API ที่ดึงข้อมูลสินค้าด้วย GET ดูได้