มีโอกาสแบ่งปันประสบการณ์เรื่องของ API-First development (Design-First)
ซึ่งจะตรงข้ามกับ Code-First ที่มักจะมีขั้นตอนการทำงานดังนี้

  • ทำการออกแบบ API Specfication ในรูปแบบของ spreadsheet โดยคนออกแบบเช่น SA/BA
  • ทำการพัฒนาตาม API Specification โดยนักพัฒนา
  • ทำการ generate API Documentation จาก code ที่เขียนโดยนักพัฒนา
  • จากนั้นก็มาคิดว่าจะทดสอบอย่างไร จะทำการจำลองเพื่อทดสอบใช้งานอย่างไร

แต่แนวทางของ API-First development จะแตกต่างออกไปดังนี้

ขั้นตอนเป็นดังนี้

ขั้นตอนที่ 1 ทำการออกแบบ API Specification ในรูปแบบที่เป็นมาตรฐานกลาง

ยกตัวอย่างรูปแบบที่ใช้งาน

ในส่วนนี้ต้องทำงานเป็นทีม ไม่ใช่แค่ทีมออกแบบเท่านั้น
แต่ยังรวมไปถึงทีมพัฒนา (ผู้สร้างและผู้ใช้งาน) และ ทีมทดสอบ ด้วย

ขั้นตอนที่ 2 ทีมทำการ review สิ่งที่ออกแบบมาว่าเป็นอย่างไร

จากนั้นทำการคิดว่า

  • จะทำการทดสอบอย่างไร (API Testing) ทั้งในแง่ของ functional และ non-functional
  • คนใช้งานจะใช้งานอย่างไรในการพัฒนา เช่น ทำการ Mock/Stub API ได้ไหม อย่างไร
  • ทำการ generate API Documentation อย่างไร ในรูปแบบที่ต้องการ

ทั้งสองขั้นตอนนี้ ยังไม่ได้เริ่มพัฒนา และ ทดสอบ นะ
เป็นเพียงขั้นตอนการออกแบบ เพื่อให้พร้อมต่อการพัฒนาและทดสอบต่อไป

ขั้นตอนที่ 3 ลงมือสร้างจากสิ่งที่ต้องการ จากขั้นตอนที่ 2

ยกตัวอย่างการออกแบบ API ด้วย Swagger หรือ OpenAPI
สามารถทำสิ่งต่าง ๆ ได้ดังนี้

  • ใช้งาน Swagger Editor ทำการออกแบบ
  • ใช้งาน Swagger Codegen สำหรับการสร้าง API Documentation, Mock/Stub API และ code ฝั่ง client
  • หรือใช้งาน Redocly ในการสร้าง API Documentation
  • หรือทำการ Mock/Stub API ด้วย OpenAPI Mocker

เป็นอีกแนวทางของการออกแบบ และ พัฒนา ระบบ API ของระบบ
ลองเรียนรู้ และ ใช้งานกันดูครับ ว่าเป็นอย่างไรกันบ้าง