คอร์สออนไลน์สอนสร้าง RESTful API ด้วยภาษา Go (Golang) และ Gin พร้อม Workshop

คอร์สสอนการใช้ภาษา Go (Golang) ตั้งแต่เริ่มต้น จนสร้าง RESTful API ได้ด้วยตนเอง

5,950
3,500 บาท
8.84
ชั่วโมงเรียน
70
วิดีโอ
10
บทเรียน
Beginner
ระดับ
รายละเอียด
ความคิดเห็น

รายละเอียดคอร์ส

ภาษา Go (Golang) ถือเป็นหนึ่งในภาษาที่ได้รับความนิยมอย่างสูงในปัจจุบัน ด้วย Syntax ที่เรียบง่ายผนวกกับประสิทธิภาพที่สูง ทั้งยังเหมาะกับการสร้างแอพพลิเคชันที่หลากหลาย เช่น การสร้างบริการหรือเซอร์วิสแบบ RESTful API หรือความสามารถที่โดดเด่นในการทำ Microservices จึงไม่แปลกที่บริษัทขนาดใหญ่เลือกใช้ภาษา Go เช่น Google, Uber, Twitch และ SendGrid เป็นต้น

คอร์สนี้จัดทำขึ้นเพื่อสอนการใช้งานภาษา Go พร้อมทั้งใช้ภาษา Go เพื่อสร้างการทำงานกับ RESTful API โดยเนื้อหาของคอร์สแบ่งออกเป็นสองส่วน ส่วนแรกจะปูพื้นฐานการใช้งานภาษา Go ตั้งแต่ต้น ทั้งโครงสร้างข้อมูลที่มีอยู่แล้วในภาษา Go การนิยามชนิดข้อมูลใหม่ หลักการทำงานแบบขนานผ่าน Goroutines การจัดการข้อผิดพลาดของโปรแกรม การ Debug Code ในโปรแกรมผ่าน Visual Studio Code เป็นต้น

ครึ่งหลังของคอร์สจะนำเข้าสู่การใช้ภาษา Go เพื่อสร้างการทำงานกับ RESTful API โดยอาศัย Gin Framework อิงสถาปัตยกรรม MVC (Model-View-Controller) พร้อมทั้งทำการเชื่อมต่อฐานข้อมูลและผูกความสัมพันธ์ข้อมูลผ่าน GORM เรียนรู้การทำงานกับฟอร์มและการตรวจสอบข้อมูลในฟอร์ม (Form Validation) ก่อนการทำงาน รวมถึงการอัพโหลดไฟล์ผ่านฟอร์มด้วยเช่นกัน

นอกจากนี้คอร์สดังกล่าวยังได้สอนถึงการใช้ภาษา Go เพื่อทำ Authentication และ Authorization ผู้เรียนจะได้เรียนรู้หลักการของ JWT และการตรวจสอบสิทธิ์การเข้าถึงข้อมูล นั่นรวมถึงหลักการของ RBAC (Role-Based Access Control) ผ่าน Casbin เป็นต้น

เนื้อหาบทเรียน

Unit
1
พื้นฐานการใช้งานภาษา Go
เรียนรู้หลักการขั้นพื้นฐานของการใช้งาน Go ทั้งชนิดข้อมูล และประโยคควบคุมต่าง ๆ เช่น if-else และ for-loop รวมถึงการใช้งานฟังก์ชันและ pointers เป็นต้น
แนะนำคอร์ส
8.08
การติดตั้ง Go และเครื่องมือที่เกี่ยวข้อง
5.07
ฟังก์ชัน main และ package main
2.22
ชนิดข้อมูลและการแปลง
6.17
การใช้ const และ iota
4.46
if-else statement
2.45
for loop
3.13
switch statement
3.34
ฟังก์ชันในภาษา Go
4.2
Pointers
3.39
การส่งค่าผ่านฟังก์ชันด้วย Pass by Value
4.06
Unit
2
Array, Slice และ Map
เรียนรู้การจัดการข้อมูลกลุ่มทั้ง Array, Slice และ Map รวมถึงการวนลูปผ่าน for-range เพื่อเข้าถึงค่าข้อมูลเหล่านี้
array
3.26
การใช้งาน slice
11.49
การดำเนินการบน slice
4.1
การใช้งานฟังก์ชัน make
5
Empty Slice VS Nil Slice
1.53
การใช้งาน map
5.29
วนลูปด้วย for-range
2.21
Unit
3
string, []byte และ rune
เรียนรู้การทำงานกับ string รวมถึงการแทนค่า string ในภาษา Go ผ่าน []byte และการเข้าถึงอักขระแต่ละตัวอักษรด้วย rune
string และ []byte
3.12
การใช้งาน Rune
5.48
ฟังก์ชันของ strings
2.13
Number Parsing
4.3
Unit
4
Structs, Interfaces และ Go Modules
เรียนรู้การนิยามข้อมูลใหม่ด้วย Struct การนิยามพฤติกรรมด้วย Interface และเข้าใจการทำงานของ Packages และ Go Modules
การสร้างและใช้งาน Struct
6.12
Type Embedding
2.12
การนิยาม Methods และ Method Receiver
7.37
Interface
2.53
Method Sets
4.26
Polymorphism
1.32
Type Assertions
3.4
Type Switch
1.17
Empty Interface
1.48
Packages และ Go Modules
9.42
Unit
5
Defer, Errors, Panic และ Recover
เรียนรู้การจัดการข้อผิดพลาดในภาษา Go ผ่าน Defer, Errors, Panic และ Recover
Defer
2.18
การสร้างและจัดการ Errors
4.24
คุณสมบัติของ Panic และการใช้งาน
1.31
การดักจับ Panic ด้วย Recover
1.49
Unit
6
Goroutines
เรียนรู้หลักการทำงานของ Concurrency และ Parallelism ผ่านการทำงานของ Goroutine และ Channels
Concurrentcy VS Palallelism
1.49
Goroutines
4.27
Channels
5.36
Unit
7
สร้าง RESTful API ด้วย Gin Framework
เรียนรู้หลักการของ RESTful API พร้อมใช้ Gin Framework สร้างเว็บเซอร์วิสแบบ RESTful
Gin Framework
8.4
RESTful API
5
Grouping Routes
9.03
การทดสอบ API ด้วย Postman
4.23
Query และ Params
7.36
Form และการตรวจสอบข้อมูลในฟอร์ม
12
Form Data และการอัพโหลดไฟล์
12.19
การเข้าถึง Static Files
1.3
Environment Variables
5.37
Model-View-Controller
10.02
Unit
8
การเชื่อมต่อฐานข้อมูลและใช้งาน GORM
เรียนรู้การเชื่อมต่อฐานข้อมูลประเภท RDBMS การสร้าง Model และการสร้างความสัมพันธ์ระหว่างโมเดล การเข้าถึงข้อมูลในฐานข้อมูลเพื่อ อ่าน สร้าง แก้ไข และลบ รวมถึงหลักการของ Migration และ Database Seeding
การเชื่อมต่อฐานข้อมูลผ่าน GORM
12.55
Database Migrations
21.22
การสร้างข้อมูลใหม่ในฐานข้อมูล
22.19
การ Query ข้อมูลด้วยเทคนิคต่าง ๆ
11.21
การสร้างการทำงานของ Pagination
27.59
การปรับปรุงประสิทธิภาพของ Pagination
8.04
การอัพเดทข้อมูลจากฟอร์ม
7.19
การลบข้อมูล
6.02
ทบทวนการใช้งาน CRUD ผ่าน GORM
11.17
Associations
16.17
Database Seeding
8.04
Unit
9
Authentication และ Authorization
เรียนรู้หลักการของ Authentication เพื่อยืนยันตัวตน และการตรวจสอบสิทธิ์ด้วยหลักการของ Authorization รวมถึงการจำกัดสิทธิ์ผ่าน Role ด้วย Role-Based Access Control (RBAC)
Authentication และ Authorization
8.08
การสร้าง Users และการลงทะเบียน
11.06
Middleware และการเข้าสู่ระบบ
18.49
การเข้าถึงข้อมูล Payload ของ JWT
24.19
หลักการของ Authorization
16.21
PERM (Policy, Effect, Request, Matchers)
7.4
Role-Based Access Control (RBAC)
16.54
Unit
10
Production
เรียนรู้การปรับโค้ดเพื่อให้สามารถใช้กับไคลเอ็นต์ประเภทเว็บได้ รวมถึงการ Deploy โปรเจคสู่ Production
RESTful API Design
21.56
CORS
12.16
Deployment
14.36
Unit
11
คอร์สอัพเดท
คอร์สอัพเดท
ข้อมูลการใช้งาน
Gin Framework
4.02
Air
4.02
Thunder Client
4.02
RESTful API
4.02
Router Group
4.02
Data Transfer Object
4.02
Binding และ Form Validation
4.02
การจัดการการอัพโหลดไฟล์
4.02
Static และ Public Folder
4.02
Params และ Queries
4.02
Environment Variables
4.02
สถาปัตยกรรม Model-View-Controller
4.02
Shared Controller
4.02
HTTP Status Codes
4.02
Serializers
4.02

ตัวอย่าง Workshop

Workshop ในคอร์สจะประยุกต์ใช้ภาษา Go ที่ได้เรียนในคอร์สเพื่อสร้างระบบจัดการบทความ โดยภายในคอร์สผู้สอนได้ทำการเตรียมส่วนของ UI ไว้ให้เรียบร้อย เพื่อใช้ทดลองเชื่อมต่อ API ที่พัฒนาด้วยภาษา Go เข้ากับส่วนของ UI นี้

คอร์สนี้จะแนะนำการทดสอบ API ด้วยการใช้เครื่องมืออย่าง Postman หรือ Insomnia เป็นหลัก และทดสอบผ่าน UI ที่ได้เตรียมไว้เพื่อให้ผู้เรียนเห็นภาพการเชื่อมต่อ UI เข้ากับ API ด้วยเช่นกัน

API Request

ผู้เรียนจะได้เรียนรู้หลักการของ RESTful API และการออกแบบ endpoint ให้เหมาะสม พร้อมทั้งเรียนรู้การใช้ Query String เพื่อคัดกรองข้อมูล ผ่าน Gin Framework เช่นตัวอย่างข้างล่างคือผลลัพธ์ของการเรียก /api/v1/articles?categoryId=20&term=aut เพื่อค้นหาบทความที่มี categoryId เป็น 20 และ title ประกอบด้วยคำว่า aut

Query String

ภายในคอร์สผู้เรียนจะได้เรียนรู้การสร้างความสัมพันธ์ระหว่างข้อมูล เช่น ความสัมพันธ์แบบหนึ่งต่อหนึ่ง (One-to-One relationship) เช่น User หนึ่งคนสามารถมีได้หนึ่ง Profile และความสัมพันธ์แบบหนึ่งต่อกลุ่ม (One-to-Many relationship) เช่น Category ใด ๆ สามารถมีได้หลายบทความ เป็นต้น โดยการทำงานบนฐานข้อมูลและการเชื่อมความสัมพันธ์นี้จะใช้ GORM เป็นตัวจัดการ

การทำงานกับฟอร์มถือเป็นส่วนสำคัญ นอกจากจะรับข้อมูลผ่านฟอร์มได้แล้วยังต้องสามารถตรวจสอบข้อมูลในฟอร์มได้ด้วย ในเวิร์กชอปของเราจึงมีการพูดถึงการทำงานกับฟอร์มรูปแบบต่าง ๆ รวมถึงการอัพโหลดไฟล์ผ่านฟอร์ม

Form

ภายในเวิร์กชอปจะประกอบด้วยระบบ Authentication ที่ใช้สำหรับยืนยันตัวตน เช่น การสมัครสมาชิกผ่าน POST /api/v1/auth/sign-up หรือการเข้าสู่ระบบผ่าน POST /api/v1/auth/sign-in โดยสิ่งที่ใช้สื่อสารระหว่าง UI และ API เพื่อบอกว่าผู้ใช้งานระบบปัจจุบันคือใครจะใช้ JWT

Auth

การตรวจสอบสิทธิ์หรือการทำ Authorization เป็นอีกหนึ่งหัวข้อที่สำคัญ ในเวิร์กชอปของเราจะพูดถึงการกำหนด Role ของผู้ใช้งาน ให้เป็น Admin, Editor หรือ Member พร้อมทำการตรวจสอบการเข้าถึง API ต่าง ๆ ผ่าน Role (Role-Based Access Control -- RBAC) เช่น เฉพาะ Admin เท่านั้นถึงจะเข้าถึง GET /api/v1/dashboard ได้

Admin

ภายในคอร์สมีการพูดถึงการเพิ่มประสิทธิภาพ เช่น การเพิ่มประสิทธิภาพของการทำ Pagination ผ่าน Channel เป็นต้น

Pagination

คอร์สนี้เหมาะกับใคร

  • ผู้เรียนที่มีพื้นฐานการเขียนโปรแกรมจากภาษาอื่นเช่น Java/C#, Python, C/C++, JavaScript และอื่น ๆ มาก่อนแล้ว
  • ผู้เรียนที่ไม่เคยเขียนภาษา Go มาก่อน และต้องการเรียนรู้การใช้งานภาษา Go
  • ผู้เรียนที่ต้องการสร้าง RESTful API ด้วยภาษา Go ผ่าน Gin Framework และติดต่อฐานข้อมูลด้วย GORM

ผู้สอน

Nuttavut Thongjor

นักพัฒนาซอฟต์แวร์ประสบการณ์กว่า 10 ปี ผู้ก่อตั้ง Babel Coder วิทยากรอบรมการพัฒนาซอฟต์แวร์และผู้ให้คำปรึกษาในบริษัทชั้นนำ

คำถามพบบ่อย

คำถาม: จำเป็นต้องมีพื้นฐานอะไรบ้าง
คำตอบ: ผู้เรียนจำเป็นต้องเขียนภาษาโปรแกรมใดก็ได้เป็นอยู่แล้ว และมีพื้นฐานการเขียนโปรแกรม

คำถาม: มีจำกัดเวลาเข้าชมหรือไม่
คำตอบ: ผู้เรียนสามารถเข้าชมคอร์สได้ทุกเวลาตลอดอายุการใช้งาน

คำถาม: ผู้เรียนจะได้รับการอัพเดทเนื้อหาตลอดเวลาหรือไม่
คำตอบ: ผู้เรียนจะได้รับการอัพเดทเนื้อหาเป็นเวลา 1 ปีนับจากวันที่ทำการซื้อคอร์ส หลังพ้นกำหนดผู้เรียนยังคงเข้าชมคอร์สได้ตามปกติ แต่จะไม่ได้รับการอัพเดทเนื้อหาอีกต่อไป

คำถาม: บริการหลังการขายมีอะไรบ้าง
คำตอบ: การถาม-ตอบ เนื้อหาที่เกี่ยวกับบทเรียน

คำถาม: จะสามารถสั่งซื้อคอร์สนี้ในนามบริษัทได้อย่างไร
คำตอบ: คุณลูกค้าสามารถติดต่อเพจ Babel Coder เพื่อขอใบเสนอราคา
ได้ครับ โดยราคาสำหรับองค์กรจะเป็นราคาจำหน่ายเต็มจากราคาที่ระบุครับ

สอบถามเพิ่มเติมโปรดติดต่อ เพจ Babel Coder

เว็บไซต์นี้มีการจัดเก็บข้อมูล

เราจัดเก็บข้อมูลเพื่อเพิ่มประสิทธิภาพและประสบการณ์ที่ดีในการใช้งานเว็บไซต์ เราสามารถนำเสนอสิ่งที่คุณสนใจเป็นพิเศษเมื่อคุณกด "ยอมรับทั้งหมด" ทั้งนี้คุณสามารถเลือกตั้งค่าความยินยอมในการใช้งานผ่าน "การตั้งค่า" หากคุณไม่ปรับเปลี่ยนการตั้งค่าเราเข้าใจว่าคุณให้ความยินยอมในการจัดเก็บข้อมูลทั้งหมดแล้ว อ่านนโยบายความเป็นส่วนตัว