ในการออกแบบ REST API นั้น มักจะออกแบบในรูปแบบของ OpenAPI หรือ Swagger กัน
มีคำถามใน course Microservices workshop ว่า
ถ้าเป็น Async หรือพวก messaging หรือ Event-based
ที่ใช้งาน RabbitMQ, Apache Kafka
จะทำการออกแบบในรูปแบบใด
โดยหนึ่งในแนวทางที่ผมใช้งานอยู่คือ AsyncAPI

โดยสามารถเขียนและออกแบบรูปแบบของ message/event
ที่ producer/publisher ส่งไปยัง messaging
และ message ที่รับมาทำงานโดย consumer/subscriber
ตัวอย่างดังนี้

จากเอกสารหรือ specification ที่ออกแบบนั้น
สามารถนำไปสร้างสิ่งต่าง ๆ ดังต่อไปนี้ได้

  • มี Async Studio สำหรับการเขียนเอกสาร และมีการ validate ให้ด้วย
  • สร้างเอกสาร
  • ทำการ generate code ออกมาได้ทั้งฝั่ง producer และ consumer
  • มีชุดของเครื่องมือให้ใช้งานเพียบ

เป็นอีกแนวทางที่น่าสนใจ
สำหรับ Design-First ของการออกแบบและพัฒนาระบบงาน
ลองใช้งานกันดูครับ