สอบถามหลักสูตรเลือกช่องทางที่สะดวก ทีมงานตอบเองทุกช่อง
LINE @itgeniusตอบเร็วที่สุด · จ–ศ 9:00–17:00 น.
โทรศัพท์
02-570-8449สำนักงาน088-807-9770มือถือ
อีเมลและโซเชียล
contact@itgenius.co.thสำหรับใบเสนอราคาและเอกสารFacebookitgeniusonlineYouTubeitgeniusengขอคำปรึกษาจัดอบรมให้ทีม
พัฒนาเว็บไซต์ · WDC-105

RESTful API with Go and Gin

หลักสูตร RESTful API with Go and Gin เป็นการอบรมพัฒนา API ฝั่ง Backend ด้วยภาษา Go และ Gin เชื่อมต่อ PostgreSQL ผ่าน GORM พร้อม Middleware, ระบบ JWT, การทดสอบ และ Docker เหมาะกับนักพัฒนาที่มีพื้นฐานภาษา Go และผู้ดูแลระบบที่เขียนบริการด้วย Go จบแล้วสร้าง RESTful API ที่เชื่อมฐานข้อมูลและทดสอบได้

อัปเดตล่าสุด
ราคาเริ่มต้น 8,550 บาท / ท่าน 9,500 −10% ยังไม่รวม VAT 7% · มีราคาหมู่คณะ
PDFดาวน์โหลด Course Outline
  • ระยะเวลา18 ชั่วโมง · 3 วัน
  • รูปแบบออนไซต์ / ออนไลน์สด
  • รอบถัดไป3–5 พ.ย. 69
  • ใบรับรองมี Certificate

ภาพรวมหลักสูตร

Gin เป็นเว็บเฟรมเวิร์กของภาษา Go ที่ทีม Backend ใช้สร้าง RESTful API กันอย่างแพร่หลาย เพราะเร็ว เขียนง่าย และมีระบบ Middleware กับ Binding ในตัว ส่วน GORM ช่วยให้ทำงานกับฐานข้อมูลได้โดยไม่ต้องเขียน SQL ทุกบรรทัดเอง แต่ตัวอย่างจำนวนมากยังเขียนแบบเก่า เช่น ใช้ AutoMigrate แทน Migration ที่มีเวอร์ชัน ไม่มี Validation ไม่มี Test และเก็บ Token แบบไม่ปลอดภัย ทำให้ API ที่ได้ใช้งานได้ในเครื่องผู้พัฒนาแต่ไม่พร้อมขึ้นระบบจริง

หลักสูตรนี้พาผู้เรียนที่มีพื้นฐานภาษา Go สร้าง RESTful API ด้วย Go 1.27 และ Gin ตั้งแต่เตรียมเครื่องมือ ออกแบบ Route รับข้อมูลพร้อม Binding และ Validation เขียน Middleware และจัดการ CORS จากนั้นเชื่อมต่อ PostgreSQL 18 ด้วย GORM ทั้ง Generics API แบบใหม่ Relationship, Transaction และ Migration วางโครงสร้างโปรเจกต์แบบแยกชั้น ทำระบบ SignUp, SignIn และป้องกัน API ด้วย JWT พร้อม Role เขียนเอกสาร OpenAPI ทดสอบด้วย Unit และ Integration Test แล้วนำแอปขึ้น Docker ปิดท้ายด้วย Capstone สร้าง API ครบวงจร (อบรม 3 วัน วันละ 6 ชั่วโมง รวม 18 ชั่วโมง ระดับ Intermediate)

สิ่งที่คุณจะได้รับ

  • สร้าง RESTful API ด้วย Go 1.27 และ Gin ตามหลักการออกแบบ API ที่ดี
  • รับและตรวจสอบข้อมูลด้วย Binding และ Validation พร้อมรูปแบบ Error ที่สม่ำเสมอ
  • เขียน Middleware สำหรับ Logging, CORS และการตรวจสิทธิ์ได้
  • เชื่อมต่อ PostgreSQL ด้วย GORM ทั้ง CRUD, Relationship, Transaction และ Migration
  • วางโครงสร้างโปรเจกต์แบบแยก Handler, Service และ Repository
  • ทำระบบ SignUp, SignIn และป้องกัน API ด้วย JWT พร้อม Role
  • เขียน Unit Test และ Integration Test ให้กับ API ได้
  • Build API เป็น Docker Image พร้อมเอกสาร OpenAPI สำหรับทีม

หลักสูตรนี้เหมาะสำหรับ

  • นักพัฒนาที่มีพื้นฐานภาษา Go และต้องการสร้าง RESTful API สำหรับงานจริง
  • นักพัฒนา Backend จากภาษาอื่นที่เริ่มเขียน Go และอยากรู้แนวทางที่ทีมใช้กันจริง
  • ผู้ดูแลระบบและ DevOps ที่ต้องเขียนบริการหรือเครื่องมือภายในด้วย Go
  • ทีมพัฒนาที่ต้องการมาตรฐานโครงสร้างโปรเจกต์ Go ที่ทดสอบได้
  • ผู้ที่เคยใช้ Gin หรือ GORM รุ่นเก่าและต้องการอัปเดตแนวทางปัจจุบัน

พื้นฐานของผู้เข้าอบรม

  • เขียนภาษา Go เบื้องต้นได้ เช่น ตัวแปร Function, Struct และ Slice
  • เข้าใจ HTTP Method, Status Code และรูปแบบข้อมูล JSON
  • รู้จักฐานข้อมูลเชิงสัมพันธ์และคำสั่ง SQL พื้นฐาน
  • ใช้ Command Line และ Git ขั้นพื้นฐานได้
  • โน้ตบุ๊กที่ติดตั้ง Go, Docker Desktop และ VS Code ได้ พร้อมสิทธิ์ติดตั้งโปรแกรม

หัวข้อการฝึกอบรม

รายละเอียดหลักสูตร

หลักสูตรนี้เป็นฉบับปรับปรุงใหม่ปี 2026 ที่มาแทนหลักสูตร RESTful API with Go and Gin รุ่นเดิม เนื้อหาเขียนใหม่ทั้งหมดสำหรับ Go 1.27, Gin รุ่นปัจจุบัน, GORM และ PostgreSQL 18 อบรม 3 วัน วันละ 6 ชั่วโมง รวม 18 ชั่วโมง (09:00-16:00 น.) รูปแบบบรรยายพร้อม Lab บน API ร้านค้าตัวอย่างชุดเดียวที่ต่อเติมตลอดหลักสูตร ระดับ Intermediate ใช้ GORM Generics API แบบใหม่ Migration ที่มีเวอร์ชัน และเพิ่ม Validation, โครงสร้างโปรเจกต์แบบแยกชั้น, Refresh Token, เอกสาร OpenAPI, Integration Test และ Docker ทุก Lab ทำงานบนเครื่องของผู้เรียนด้วยเครื่องมือโอเพนซอร์ส ผู้เรียนได้ Lab Guide ซอร์สโค้ดครบทุก Lab และไฟล์ docker-compose กลับไปใช้งานต่อ

Day 1 Gin และพื้นฐานการสร้าง API

Section 1: Lab: เตรียมเครื่องมือสำหรับ Go 1.27

  • ติดตั้ง Go 1.27 และตั้งค่า VS Code กับ Go Extension และ gopls
  • สร้างโปรเจกต์ด้วย go mod init และจัดการ Dependency
  • Hot Reload ระหว่างพัฒนาด้วย Air
  • ทดสอบ API ด้วย Postman, Bruno หรือไฟล์ .http ใน VS Code
  • Lab: รันเว็บเซิร์ฟเวอร์ตัวแรกและเรียกผ่านเครื่องมือทดสอบ

Section 2: ทบทวน Go ที่ใช้ทำ API

  • Struct, Method และ JSON Tag สำหรับรับส่งข้อมูล
  • Slice, Map และการวนลูปด้วย for range
  • การจัดการ Error ด้วย errors.Is, errors.As และการห่อ Error
  • Interface และ Generics ที่ใช้บ่อยในงาน Backend
  • context สำหรับ Timeout และการยกเลิกคำขอ

Section 3: Lab: เริ่มต้น RESTful API ด้วย Gin

  • หลักการออกแบบ RESTful API: Resource, Method และ Status Code
  • gin.Default เทียบกับ gin.New และการเลือก Middleware เอง
  • Route, Route Group, Path Parameter และ Query String
  • ส่ง JSON Response และจัดรูปแบบ Error ให้สม่ำเสมอ
  • Graceful Shutdown ด้วย http.Server และ context

Section 4: Binding และ Validation

  • ShouldBindJSON, ShouldBindQuery และ ShouldBindUri
  • กฎตรวจสอบด้วย binding Tag เช่น required, email และ min
  • เขียน Custom Validator สำหรับกฎทางธุรกิจ
  • แปลง Validation Error เป็นข้อความที่ Frontend ใช้งานได้
  • Lab: API รับข้อมูลลูกค้าพร้อมกฎตรวจสอบครบชุด

Section 5: Lab: Middleware, CORS และ Upload

  • ลำดับการทำงานของ Middleware และการเขียน Middleware เอง
  • Logging แบบมีโครงสร้างด้วย log/slog และ Request ID
  • ตั้งค่า CORS ด้วย gin-contrib/cors อย่างปลอดภัย
  • Upload ไฟล์ด้วย Multipart Form พร้อมจำกัดขนาดและชนิดไฟล์
  • Lab: วางชุด Middleware มาตรฐานให้กับ API
Day 2 PostgreSQL และ GORM

Section 6: Lab: PostgreSQL 18 และแนวคิด ORM

  • รัน PostgreSQL 18 ด้วย Docker Compose พร้อม Volume
  • แนวคิด ORM ข้อดีและข้อจำกัด เทียบกับการเขียน SQL เอง
  • เชื่อมต่อ GORM กับ PostgreSQL และตั้งค่า Connection Pool
  • เปิด Log ของ SQL เพื่อดูคำสั่งที่ GORM สร้างจริง

Section 7: Model, Schema และ Migration

  • สร้าง Model ด้วย Struct และ GORM Tag
  • Primary Key แบบตัวเลขหรือ UUID, Index และ Unique Constraint
  • Soft Delete และฟิลด์เวลาสร้างและแก้ไขข้อมูล
  • AutoMigrate สำหรับทดลอง เทียบกับ Migration ที่มีเวอร์ชันด้วย golang-migrate
  • Lab: ออกแบบ Schema ของระบบร้านค้าและสร้าง Migration ชุดแรก

Section 8: Lab: CRUD ด้วย GORM Generics API

  • รู้จัก Generics API แบบใหม่ gorm.G ที่ใช้ตั้งแต่ GORM 1.30
  • Create, First, Find, Update และ Delete พร้อม context
  • เงื่อนไขค้นหา, Pagination และ Sorting จาก Query String
  • จัดการกรณีไม่พบข้อมูลด้วย ErrRecordNotFound
  • Lab: API จัดการสินค้าแบบ CRUD ครบทุก Endpoint

Section 9: Relationship, Join และ Transaction

  • Has One, Has Many, Belongs To และ Many to Many
  • Preload เทียบกับ Joins และการหลีกเลี่ยงปัญหา N+1 Query
  • Transaction สำหรับงานที่ต้องสำเร็จพร้อมกันหลายตาราง
  • เมื่อไรควรเขียน Raw SQL อย่างปลอดภัยแทน ORM
  • Lab: ระบบคำสั่งซื้อที่ตัดสต็อกสินค้าภายใน Transaction

Section 10: Lab: โครงสร้างโปรเจกต์ที่ทดสอบได้

  • แยก Handler, Service และ Repository ตามหน้าที่
  • กำหนด Repository เป็น Interface เพื่อสลับและทดสอบได้
  • ประกอบ Dependency ใน main ด้วย Constructor Injection
  • จัดการ Configuration และ Secret ผ่าน Environment Variable
  • Lab: Refactor API สินค้าและคำสั่งซื้อเข้าโครงสร้างใหม่
Day 3 Authentication, Testing และ Deploy

Section 11: Lab: SignUp และ SignIn

  • ออกแบบตารางผู้ใช้และป้องกันอีเมลซ้ำ
  • เก็บรหัสผ่านด้วย bcrypt และกำหนดนโยบายรหัสผ่าน
  • API สมัครสมาชิกและเข้าสู่ระบบพร้อม Validation
  • ข้อความ Error ที่ไม่เปิดเผยข้อมูลเกินจำเป็น

Section 12: Lab: JWT และ Middleware ตรวจสิทธิ์

  • โครงสร้างของ JWT และ Bearer Token
  • ออก Access Token และ Refresh Token ด้วย golang-jwt v5
  • Middleware ตรวจ Token และส่งข้อมูลผู้ใช้ผ่าน gin.Context
  • กำหนดสิทธิ์ตาม Role เช่น Admin และ User
  • Lab: ป้องกัน API สินค้าและคำสั่งซื้อตามสิทธิ์ผู้ใช้

Section 13: เอกสาร API และความปลอดภัย

  • สร้างเอกสาร OpenAPI จาก Comment ในโค้ดด้วย swag และเปิดดูผ่าน Swagger UI
  • API Versioning และรูปแบบ Response ที่ทีม Frontend ใช้ง่าย
  • จำกัดจำนวนคำขอ (Rate Limit) และขนาดของ Request
  • ช่องโหว่ที่พบบ่อยตาม OWASP API Security Top 10

Section 14: Lab: Unit Test และ Integration Test

  • Unit Test แบบ Table-driven ด้วยแพ็กเกจ testing
  • ทดสอบ Handler ด้วย httptest และ gin.TestMode
  • Mock Repository เพื่อทดสอบ Service โดยไม่ต้องมีฐานข้อมูล
  • Integration Test กับ PostgreSQL จริงด้วย Testcontainers for Go
  • วัด Test Coverage และรัน Test อัตโนมัติก่อน Merge

Section 15: Workshop: Docker และ Capstone

  • เขียน Dockerfile แบบ Multi-stage Build ให้ Image เล็กและปลอดภัย
  • Docker Compose สำหรับ API และ PostgreSQL พร้อม Health Check
  • Capstone: สร้าง API ระบบจองหรือระบบคลังสินค้าตั้งแต่ต้นจนจบ
  • นำเสนอผลงาน รีวิวโค้ดร่วมกัน และสรุป Checklist ก่อนขึ้น Production

รอบอบรมและรูปแบบการอบรม

สำหรับบุคคล — รอบอบรมทั่วไป

3–5พฤศจิกายน
ในคลาสเรียน3–5 พ.ย. 69
เหลือ 20 ที่นั่ง
5–7มกราคม
ในคลาสเรียน5–7 ม.ค. 70
เหลือ 20 ที่นั่ง
9–11มีนาคม
ในคลาสเรียน9–11 มี.ค. 70
เหลือ 20 ที่นั่ง
11–13พฤษภาคม
ในคลาสเรียน11–13 พ.ค. 70
เหลือ 20 ที่นั่ง
6–8กรกฎาคม
ในคลาสเรียน6–8 ก.ค. 70
เหลือ 20 ที่นั่ง
1–3กันยายน
ในคลาสเรียน1–3 ก.ย. 70
เหลือ 20 ที่นั่ง
23–25พฤศจิกายน
ในคลาสเรียน23–25 พ.ย. 70
เหลือ 20 ที่นั่ง

สำหรับองค์กร — In-house / Private Training

  • ปรับเนื้อหาให้ตรงกับเครื่องมือและงานจริงของทีม
  • เลือกวันเอง อบรมที่บริษัทหรือออนไลน์สด
  • ออกใบเสนอราคาในนามนิติบุคคลให้ฝ่ายจัดซื้อ
ขอใบเสนอราคาอบรมองค์กร

วิทยากรผู้สอน

คำถามที่พบบ่อย

Gin คืออะไร ทำไมนิยมใช้สร้าง REST API ด้วยภาษา Go

Gin เป็นเว็บเฟรมเวิร์กของภาษา Go ที่มี Router ทำงานเร็วและใช้หน่วยความจำน้อย รองรับ Middleware สำหรับงานที่ทำซ้ำทุกคำขอ เช่น Log, CORS หรือตรวจสิทธิ์ มีฟังก์ชันอ่านและตรวจข้อมูล JSON เข้า Struct ด้วย ShouldBindJSON พร้อมกฎ Validation และจัดกลุ่ม Route ได้ จึงเขียน API ได้สั้นกว่าใช้ net/http อย่างเดียว ขณะที่ยังใช้ http.Server มาตรฐานของ Go ได้ เช่น ทำ Graceful Shutdown

สร้าง REST API ด้วย Gin เชื่อม PostgreSQL ผ่าน GORM มีขั้นตอนอย่างไร

เริ่มจาก go mod init แล้วติดตั้ง Gin, GORM และไดรเวอร์ PostgreSQL เปิดการเชื่อมต่อด้วย gorm.Open และตั้งค่า Connection Pool สร้าง Struct เป็น Model แล้วสร้างตารางด้วย Migration ที่มีเวอร์ชัน (AutoMigrate เหมาะกับการทดลอง) เขียน Repository ที่ใช้ Generics API อย่าง gorm.G พร้อม context แล้วให้ Handler อ่านข้อมูลด้วย c.ShouldBindJSON ตรวจสอบ และเรียก Service ผูกกับ Route Group จากนั้นทดสอบด้วย Postman หรือ Bruno และเขียน Test อัตโนมัติ

ทำ Middleware ตรวจ JWT ใน Gin ทำอย่างไร

เขียนฟังก์ชันที่คืนค่า gin.HandlerFunc ให้อ่านส่วนหัว Authorization แล้วตัดคำว่า Bearer ออก จากนั้นตรวจลายเซ็น อัลกอริทึม และวันหมดอายุของ Token ด้วย golang-jwt v5 ถ้าไม่ถูกต้องให้เรียก c.AbortWithStatusJSON ตอบ 401 ถ้าถูกต้องให้เก็บข้อมูลผู้ใช้ด้วย c.Set แล้วเรียก c.Next แล้วผูก Middleware กับกลุ่ม Route ที่ต้องล็อกอิน เพิ่ม Middleware ตรวจ Role สำหรับ Route ที่จำกัดสิทธิ์ และใช้ Refresh Token แทนการออก Access Token อายุยาว

หลักสูตร RESTful API with Go and Gin เหมาะกับใคร ต้องมีพื้นฐานอะไรมาก่อน

เหมาะกับนักพัฒนาที่มีพื้นฐานภาษา Go และต้องการสร้าง RESTful API ที่เชื่อมฐานข้อมูล นักพัฒนา Backend จากภาษาอื่นที่เริ่มเขียน Go และผู้ดูแลระบบหรือ DevOps ที่ต้องเขียนบริการด้วย Go ควรเขียน Go เบื้องต้นได้ เข้าใจ HTTP และ JSON และรู้จักคำสั่ง SQL พื้นฐาน

เรียนจบหลักสูตร RESTful API with Go and Gin แล้วทำอะไรได้บ้าง

สร้าง RESTful API ด้วย Gin พร้อม Binding, Validation และ Middleware ตั้งค่า CORS และอัปโหลดไฟล์ ทำ CRUD, Relationship และ Transaction ใน PostgreSQL ผ่าน GORM พร้อม Migration วางโครงสร้างโปรเจกต์ที่ทดสอบได้ ทำระบบสมัครและล็อกอินด้วย bcrypt และ JWT พร้อม Role เขียนเอกสาร OpenAPI เขียน Unit และ Integration Test และ Build เป็น Docker Image ผู้ผ่านการอบรมได้รับใบประกาศนียบัตร (Certificate of Completion) ที่มีเลขที่ของตัวเองและตรวจสอบออนไลน์ได้

เรียน RESTful API with Go and Gin ต้องใช้โปรแกรมอะไรบ้าง

ใช้ Go 1.27 และ VS Code พร้อม Go Extension ใช้ Air สำหรับ Hot Reload ให้รันโปรเจกต์ใหม่อัตโนมัติเมื่อแก้โค้ด ทดสอบ API ด้วย Postman หรือ Bruno และรัน PostgreSQL 18 ผ่าน Docker Desktop เครื่องมือทั้งหมดใช้ได้ฟรีและจะติดตั้งร่วมกันระหว่างการอบรม จึงควรมีโน้ตบุ๊กที่ติดตั้งโปรแกรมได้

บทความที่เกี่ยวข้อง