คอร์สออนไลน์สอนสร้าง RESTful API ด้วยภาษา Go (Golang) และ Gin พร้อม Workshop
คอร์สสอนการใช้ภาษา Go (Golang) ตั้งแต่เริ่มต้น จนสร้าง RESTful API ได้ด้วยตนเอง
รายละเอียดคอร์ส
ภาษา 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 เป็นต้น
เนื้อหาบทเรียน
ตัวอย่าง Workshop
Workshop ในคอร์สจะประยุกต์ใช้ภาษา Go ที่ได้เรียนในคอร์สเพื่อสร้างระบบจัดการบทความ โดยภายในคอร์สผู้สอนได้ทำการเตรียมส่วนของ UI ไว้ให้เรียบร้อย เพื่อใช้ทดลองเชื่อมต่อ API ที่พัฒนาด้วยภาษา Go เข้ากับส่วนของ UI นี้
คอร์สนี้จะแนะนำการทดสอบ API ด้วยการใช้เครื่องมืออย่าง Postman หรือ Insomnia เป็นหลัก และทดสอบผ่าน UI ที่ได้เตรียมไว้เพื่อให้ผู้เรียนเห็นภาพการเชื่อมต่อ UI เข้ากับ API ด้วยเช่นกัน
ผู้เรียนจะได้เรียนรู้หลักการของ RESTful API และการออกแบบ endpoint ให้เหมาะสม พร้อมทั้งเรียนรู้การใช้ Query String เพื่อคัดกรองข้อมูล ผ่าน Gin Framework
เช่นตัวอย่างข้างล่างคือผลลัพธ์ของการเรียก /api/v1/articles?categoryId=20&term=aut
เพื่อค้นหาบทความที่มี categoryId
เป็น 20
และ title
ประกอบด้วยคำว่า aut
ภายในคอร์สผู้เรียนจะได้เรียนรู้การสร้างความสัมพันธ์ระหว่างข้อมูล เช่น ความสัมพันธ์แบบหนึ่งต่อหนึ่ง (One-to-One relationship) เช่น User หนึ่งคนสามารถมีได้หนึ่ง Profile และความสัมพันธ์แบบหนึ่งต่อกลุ่ม (One-to-Many relationship) เช่น Category ใด ๆ สามารถมีได้หลายบทความ เป็นต้น โดยการทำงานบนฐานข้อมูลและการเชื่อมความสัมพันธ์นี้จะใช้ GORM เป็นตัวจัดการ
การทำงานกับฟอร์มถือเป็นส่วนสำคัญ นอกจากจะรับข้อมูลผ่านฟอร์มได้แล้วยังต้องสามารถตรวจสอบข้อมูลในฟอร์มได้ด้วย ในเวิร์กชอปของเราจึงมีการพูดถึงการทำงานกับฟอร์มรูปแบบต่าง ๆ รวมถึงการอัพโหลดไฟล์ผ่านฟอร์ม
ภายในเวิร์กชอปจะประกอบด้วยระบบ Authentication ที่ใช้สำหรับยืนยันตัวตน เช่น การสมัครสมาชิกผ่าน POST /api/v1/auth/sign-up
หรือการเข้าสู่ระบบผ่าน POST /api/v1/auth/sign-in
โดยสิ่งที่ใช้สื่อสารระหว่าง UI และ API เพื่อบอกว่าผู้ใช้งานระบบปัจจุบันคือใครจะใช้ JWT
การตรวจสอบสิทธิ์หรือการทำ Authorization เป็นอีกหนึ่งหัวข้อที่สำคัญ ในเวิร์กชอปของเราจะพูดถึงการกำหนด Role ของผู้ใช้งาน
ให้เป็น Admin, Editor หรือ Member พร้อมทำการตรวจสอบการเข้าถึง API ต่าง ๆ ผ่าน Role (Role-Based Access Control -- RBAC)
เช่น เฉพาะ Admin เท่านั้นถึงจะเข้าถึง GET /api/v1/dashboard
ได้
ภายในคอร์สมีการพูดถึงการเพิ่มประสิทธิภาพ เช่น การเพิ่มประสิทธิภาพของการทำ Pagination ผ่าน Channel เป็นต้น
คอร์สนี้เหมาะกับใคร
- ผู้เรียนที่มีพื้นฐานการเขียนโปรแกรมจากภาษาอื่นเช่น Java/C#, Python, C/C++, JavaScript และอื่น ๆ มาก่อนแล้ว
- ผู้เรียนที่ไม่เคยเขียนภาษา Go มาก่อน และต้องการเรียนรู้การใช้งานภาษา Go
- ผู้เรียนที่ต้องการสร้าง RESTful API ด้วยภาษา Go ผ่าน Gin Framework และติดต่อฐานข้อมูลด้วย GORM
ผู้สอน
นักพัฒนาซอฟต์แวร์ประสบการณ์กว่า 10 ปี ผู้ก่อตั้ง Babel Coder วิทยากรอบรมการพัฒนาซอฟต์แวร์และผู้ให้คำปรึกษาในบริษัทชั้นนำ
คำถามพบบ่อย
คำถาม: จำเป็นต้องมีพื้นฐานอะไรบ้าง
คำตอบ: ผู้เรียนจำเป็นต้องเขียนภาษาโปรแกรมใดก็ได้เป็นอยู่แล้ว และมีพื้นฐานการเขียนโปรแกรม
คำถาม: มีจำกัดเวลาเข้าชมหรือไม่
คำตอบ: ผู้เรียนสามารถเข้าชมคอร์สได้ทุกเวลาตลอดอายุการใช้งาน
คำถาม: ผู้เรียนจะได้รับการอัพเดทเนื้อหาตลอดเวลาหรือไม่
คำตอบ: ผู้เรียนจะได้รับการอัพเดทเนื้อหาเป็นเวลา 1 ปีนับจากวันที่ทำการซื้อคอร์ส หลังพ้นกำหนดผู้เรียนยังคงเข้าชมคอร์สได้ตามปกติ แต่จะไม่ได้รับการอัพเดทเนื้อหาอีกต่อไป
คำถาม: บริการหลังการขายมีอะไรบ้าง
คำตอบ: การถาม-ตอบ เนื้อหาที่เกี่ยวกับบทเรียน
คำถาม: จะสามารถสั่งซื้อคอร์สนี้ในนามบริษัทได้อย่างไร
คำตอบ: คุณลูกค้าสามารถติดต่อเพจ Babel Coder เพื่อขอใบเสนอราคา
ได้ครับ โดยราคาสำหรับองค์กรจะเป็นราคาจำหน่ายเต็มจากราคาที่ระบุครับ
สอบถามเพิ่มเติมโปรดติดต่อ เพจ Babel Coder