วันนี้ได้พูดคุยใน ClubHouse กันนิดหน่อย
เรื่อง Swagger/Protobuf usecase and trend
เป็นการแลกเปลี่ยนแนวทางในการพัฒนา API
ไม่ว่าจะเป็น RESTFul API, Protobuf หรือพวก gRPC

แนวทางในการพูดคุยประกอบไปด้วย

Design First

เริ่มจากการออกแบบ API specification ก่อน
ไม่ว่าจะเป็น Swagger, API BluePrint และ RAML ก็ตาม
จากนั้นทำการ generate code ส่วนของ API ออกมาให้
ด้วยเครื่องมือที่จัดเตรียมไว้ เช่น Swagger CodeGen เป็นต้น
ซึ่งสนับสนุนภาษาโปรแกรมมากมาย

หรืออาจจะสร้าง DSL (Domain Specific Language) ขึ้นมา
เพื่อสร้างตามความต้องการของบริษัท
ยกตัวอย่างเช่น Omise Bluepine

Code First

เริ่มจากการเขียน code ก่อน
จากนั้นใช้เครื่องมือ generate Specification/Documentation 
ยกตัวอย่างเช่น Swag เป็นต้น

และเพิ่มเติมเข้ามาเรื่องของ Contract testing

เพื่อช่วยให้ทั้ง provider และ consumer มั่นใจว่า
เมื่อมีการเปลี่ยนแปลงหรือปรับปรุงแล้ว
ยังคงไม่ทำให้เกิดปัญหาหาหรือทำให้รู้ปัญหาได้อย่างรวดเร็วยก
ตัวอย่างเช่น

อีกทั้ง API Specification ที่เขียนตาม format ของ Swagger และ API Blueprint

สามารถทำการสร้าง Mock server ในมุมของ provider และ consumer
ได้ด้วยเครื่องมือต่าง ๆ ดังนี้

ไม่ว่าจะเป็นรูปแบบไหน ก็ต้องดูในบริบทต่าง ๆ ด้วย
รวมทั้งว่า เข้ามาช่วยเพิ่ม productivity ด้วยหรือไม่
หรือเข้ามาช่วยแก้ไขปัญหา หรือเพิ่มปัญหา