12/04/2026 18:19น.

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 ดูได้