ก่อนหน้านี้ทำการพัฒนา Go HTTP service นั้น
ใช้งานทั้ง net/http, Echo และ Gin เป็นหลัก
แต่มีอีกตัวที่น่าสนใจคือ Chi
หลัก ๆ ทำงานในส่วนของ router สำหรับ REST API
โดยที่สนับสนุน context package ของ Go ด้วย
จุดเด่นของ Chi ประกอบไปด้วย
- มีขนาดเล็ก โดย code ประมาณ 1,000 บรรทัด และไม่มี depenedncy อื่น ๆ นอกจาก G standard และ net/http package เท่านั้น
- มี Middleware ให้ใช้เพียบ
- เร็วใช้ได้เลย
- จัดการ router ง่ายมาก ๆ ทั้งจัด group และ sub-group
- Doc generation (docgen) ทำการสร้างเอกสารจาก code ในรูปแบบ JSON หรือ Markdown แต่ยังไม่สนับสนุน Chi version 5
ลองเขียนนิดหน่อย
เริ่มจากการสร้าง router ของระบบก่อน
และใช้ middleware ตัวเดียวคือ Logger
[gist id="36dc98761fe0e9d08a63179aca7ce31f" file="main.go"]ทำในส่วนของการทำงานของ /post นิดหน่อย
[gist id="36dc98761fe0e9d08a63179aca7ce31f" file="post.go"]เพียงเท่านี้ก็สามารถใช้งานแบบง่าย ๆ ได้แล้ว
ว่าง ๆ มาลองใช้กันดูครับ
เล็ก แรงดี
เป็นอีกหนึ่งทางเลือกของการพัฒนา