มีโอกาสแบ่งปันประสบการณ์เรื่องของ 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 ของระบบ
ลองเรียนรู้ และ ใช้งานกันดูครับ ว่าเป็นอย่างไรกันบ้าง