برنامه نویسی

یک OpenAPI از پایگاه داده خود ایجاد کنید

من اخیراً در مورد تقاطع پایگاه های داده و API ها صحبت کرده ام. به عنوان خلاصه – من راه حل هایی را برای ایجاد API ها به طور مستقیم از پایگاه داده شما، فرمت هایی برای ارسال ایمن پرس و جوی SQL از طریق REST پوشش دادم، و در آخر – چند نمونه از ساختن APIهای سبک PostgREST در بالای PostgresSQL با پایگاه های داده نئون و MySQL ایجاد کردم. فرض اساسی این پست ها این است که شما نکن می خواهید API های CRUD را در بالای پایگاه داده خود بسازید و ترجیح می دهید آنها را برای شما تولید کنند – اما این با برخی معاوضه ها همراه است.

  • API-autogenerators اجرای API شما را کنترل می کنند – اغلب ویژگی های پشت سرویس مدیریت شده خود را قفل می کنند. سفارشی سازی یا بهبود بسیاری از محصولات پس از تولید دشوار است و در پشته توسعه API معمولی شما قرار نمی گیرند.
  • استانداردها/ابزارهای پرس و جو موجودیت REST مانند OData خوب هستند – اما به دلیل محدودیت مجموعه ابزار و آموزش تیم خود در مورد استاندارد، پذیرش می تواند چالش برانگیز باشد. علاوه بر این، کاربران مجبور به ارسال پرس‌و‌جوها در قالبی پیچیده هستند، تجربه توسعه‌دهنده ضعیفی در APIهای عمومی دارند.
  • APIهای سبک PostgREST برای ابزارهای داخلی عالی هستند، اما باز هم – به دلیل سینتکس پیچیده، برای APIهای عمومی مناسب نیستند.

یک جایگزین بازتر

بنابراین – به نظر می رسد که شکاف ابزاری برای خواسته های زیر وجود دارد:

  • به استفاده از ابزارهایی که من و تیمم به آنها عادت کرده ایم ادامه دهید
  • آسان برای پذیرش
  • API عمومی آماده است

خوشبختانه برای شما – قبلاً قالبی وجود دارد که کاملاً باز است، قابل همکاری است، برای APIهای عمومی ساخته شده است، و بهترین – شما قبلاً آن را می دانید! من در مورد OpenAPI (fka Swagger) صحبت می کنم.

اگر ما به سادگی یک تعریف CRUD API را مستقیماً از پایگاه داده شما ایجاد کنیم – می توانید از آن با چارچوب های سازگار با OpenAPI (بسیاری از آنها بومی OpenAPI هستند و به شما امکان می دهند نقاط پایانی را با استفاده از مشخصات خود بنویسید)، مولدهای اسناد OpenAPI برای مصرف عمومی استفاده کنید (مثلاً. زودوکو). البته این رویکرد به سادگی ایجاد یک API برای شما نیست، اما احتمالاً می‌خواهید طراحی و پیاده‌سازی را به اندازه‌ای تغییر دهید که به هر حال از قابلیت‌های آن ژنراتورها خارج شده باشید.

https%3A%2F%2Fdev to

ایجاد OpenAPI از یک پایگاه داده

وقتی متوجه شدم هیچ ابزار مستقلی وجود ندارد که مشخصات OpenAPI را مستقیماً از یک طرح پایگاه داده ایجاد کند شگفت زده شدم – بنابراین تصمیم گرفتم یکی را ایجاد کنم. DB2OpenAPI یک CLI منبع باز است که پایگاه داده SQL شما را با مسیرهای CRUD، توضیحات و پاسخ های طرحواره JSON که با ستون های جداول شما مطابقت دارند، به یک سند OpenAPI تبدیل می کند. این با استفاده از Sequelize ORM ساخته شده است که پشتیبانی می کند:

  • PostgreSQL
  • MariaDB
  • MySQL
  • MSSQL
  • SQLite
  • اوراکل

بنابراین اکثریت شما باید تحت پوشش باشید. تولید فایل OpenAPI بسیار ساده است – کافی است پارامترهای مورد نیاز را برای اتصال به پایگاه داده خود ارائه دهید و بقیه موارد مراقبت می شود. در اینجا نمونه ای از اتصال به پایگاه داده Supabase آورده شده است:

db2openapi -t postgres -h aws-0-us-west-1.pooler.supabase.com -p 5432 -u postgres.ndizqitliqszxibppdxg -P  -d postgres
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

این به ویژه مفید است زیرا Supabase از PostegREST در زیر هود استفاده می کند که از OpenAPI 3.x پشتیبانی نمی کند. توجه داشته باشید که برخی از ویژگی‌های خاص Postgres مانند enums به فهرست‌های JSON Schema تبدیل نمی‌شوند زیرا Sequelize آن اطلاعات را فاش نمی‌کند.

ساختن یک API از OpenAPI

این خارج از محدوده این وبلاگ است، اما در اینجا چند مرحله/ابزار توصیه می شود:

  1. مشخصات OpenAPI ایجاد شده را پاک کنید، خطاها، پارامترها و غیره را اضافه کنید تا زمانی که طرحی را که دوست دارید داشته باشید.
  2. از openapi-backend برای ساخت CRUD API های خود استفاده کنید. این چارچوب برای اطمینان از اینکه پیاده سازی شما واقعاً با مشخصات شما مطابقت دارد عالی است و می تواند در بالای فریم ورک های مختلف NodeJS API قرار گیرد.
  3. API خود را در جایی میزبانی کنید، مانند Render یا Digital Ocean.
  4. از Zuplo به عنوان یک دروازه روی API خود استفاده کنید – می توانید OpenAPI خود را مستقیماً وارد کنید و پروکسی ها را روی نقاط پایانی شما ایجاد می کند و همچنین یک پورتال توسعه دهنده برای API شما ایجاد می کند.

و شما آن را دارید – شما با موفقیت یک CRUD API قابل تنظیم فقط از پایگاه داده خود ساخته اید!

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا