یک API و ۴ خروجی؛ یک تغییر و ۴ دردسر!
این اتفاق زمانی میفته که SDK، CLI، Documentation و Schema رو جدا از هم نگهداری میکنیم.
مشکل اینجاست که یک تغییر کوچک در API میتونه باعث ناهماهنگی در یک یا چندتا از این منابع بشه.
شرکت Cloudflare برای حل این مشکل Forge رو منتشر کرده. ایدهاش اینه که با یک API Definition چندین خروجی بتونیم داشته باشیم و بهجای اینکه SDK یا Documentation رو دستی آپدیت کنیم، Forge اونها رو از طریق API Definition تولید میکنه.
حتی میشه این فرایند رو در CI داشت. یعنی وقتی API تغییر میکنه، Forge میتونه توی همون Pull Request خروجیهای جدید رو بسازه و Preview تحویل بده. اینطوری قبل از اینکه تغییر وارد Release بشه، میبینیم چه چیزهایی تغییر کرده.
این فقط محدود به SDK نیست. یک OpenAPI میتونه به SDK، CLI، Documentation و یا خروجیهای سفارشی تبدیل بشه.
به نظرم بخش مهم ماجرا خود Forge نیست، اینه که API باید Source of Truth باشه، نه یکی از چندین منبع. هر چیزی که از API ساخته میشه، بهتره تا جای ممکن Generated باشه، نه چیزی که یک نفر باید بعدا بهصورت دستی Sync نگهش داره.
کلادفلر این پروژه رو با لایسنس Apache 2.0 به صورت متنباز منتشر کرده:
https://github.com/cloudflare/forge
@DevTwitter | <Mehrad S/>
Post #13418
3.35K

- 👍 9