| 👀 خبر در یک نگاه:
مایکروسافت نسخه ۱.۶ ابزار متنباز Data API Builder را منتشر کرده که با افزودن کنترلهای پیشرفته HTTP Header و سیستم لاگبرداری جدید، توسعه APIهای REST و GraphQL را روی پایگاهدادههای Azure و سایر پلتفرمها سادهتر میکند. این نسخه بر بهبود عملکرد، نظارت و آمادگی برای محیطهای پروداکشن تمرکز دارد. |
مایکروسافت نسخه ی ۱.۶ ابزار متن باز Data API Builder را منتشر کرده است. این نسخه، امکانات تازه ای را برای توسعه دهندگان فراهم می کند تا بتوانند به سادگی اندپوینت های REST و GraphQL را روی پایگاه دادههای Azure SQL، PostgreSQL، MySQL و Cosmos DB ایجاد کنند و از این طریق، ساخت API برای دادهها را سریعتر و کارآمدتر انجام دهند.
در این نسخه، قابلیتهای پیشرفتهتری برای هدرهای HTTP معرفی شده تا کنترل سمت کاربر بهبود یابد و همچنین سیستم لاگبرداری جدیدی اضافه شده که با هدف بهبود تشخیص خطا و نظارت در محیطهای ابری و محلی طراحی شده است.
Data API Builder چطور کار میکند؟
Data API Builder یک لایه میانی بدون وضعیت (Stateless) فراهم میکند که بهطور خودکار اشیای پایگاهداده را بهصورت اندپوینتهای امن REST API در دسترس قرار میدهد. از زمان انتشار عمومی آن در ۲۰۲۴، این ابزار برای تسریع توسعه بکاند مورد استفاده قرار گرفته، چون نیاز به ساخت APIهای سفارشی مبتنی بر ORM را حذف میکند.
نظران کاربران
با این حال، بازخورد توسعهدهندگان در شبکههای اجتماعی نشان میدهد که DAB بیشتر برای نمونهسازی و سناریوهای ساده مناسب است. یکی از توسعهدهندگان در Reddit اشاره کرده که این ابزار فاقد اعتبارسنجی با منطق تجاری سفارشی، بهروزرسانی در چند انتیتی و مدیریت خطای اختصاصی است.
ویژگیهای جدید Data API Builder
نسخه ۱.۶ همچنان تمرکز مایکروسافت را بر آمادهسازی برای استفاده در محیطهای پروداکشن ادامه میدهد و روی دو حوزه اصلی تمرکز دارد: معنای هدرها و تلهمتری زمان اجرا.
بر اساس اعلام وبلاگ توسعهدهندگان مایکروسافت، در نسخه ۱.۶ ابزار Data API Builder، اکنون از سربرگهای استاندارد HTTP پشتیبانی میشود که نحوه تعامل کلاینتها با دادههای منتشرشده را کنترل میکنند:
- If-Match امکان همزمانی خوشبینانه (Optimistic Concurrency) را برای عملیاتهای PUT و PATCH فراهم میکند. کلاینتها میتوانند یک Entity Tag ارسال کنند تا مطمئن شوند بهروزرسانی فقط زمانی انجام میشود که رکورد از زمان دریافت، تغییری نکرده باشد. به این ترتیب از بازنویسی تصادفی دادهها در محیطهای همزمان جلوگیری شود.
- Cache-Control امکان تعیین دستورهای کش صریح را فراهم میکند. همچنین به توسعهدهندگان اجازه میدهد پاسخهای اندپوینتها را برای سناریوهای کش توزیعشده یا سمت کاربر تنظیم کنند.
این قابلیت باعث بهبود عملکرد در بارهای کاری خواندنی میشود و در کنار کش سطح ۱ (که از قبل در DAB وجود داشت) و کش سطح ۲ توزیعشده (که در این نسخه معرفی شده) کار میکند. - هدرهای Location فرایند شناسایی منابع را سادهتر میکند، چون برای آیتمهای تازه ایجادشده آدرسهای یکتای استاندارد برمیگرداند. این تغییر باعث میشود DAB با رویههای استاندارد REST برای متد POST در HTTP هماهنگتر شود.
این قابلیتهای جدید، سازگاری DAB با کلاینتهای HTTP موجود، پراکسیهای معکوس و گیتویهای API را بهبود میدهند. با این حال، مایکروسافت اشاره کرده که در نسخه ۱.۶ هنوز تولید ETag و پشتیبانی کامل از درخواستهای شرطی پیادهسازی نشدهاند و این ویژگیها برای نسخههای آینده برنامهریزی شدهاند.
سیستم لاگینگ جدید
در این ورژن، یک سیستم لاگبرداری جدید نیز معرفی شده که جایگزین مدل پیکربندی استاتیک در نسخههای قبلی شده است. توسعهدهندگان اکنون میتوانند چند سینک و سطوح مختلف لاگ را از طریق پیکربندی JSON یا متغیرهای محیطی تعریف کنند تا نظارت دقیقتری برای دیباگ محلی یا محیطهای تولیدی ابری داشته باشند:
- File Sink: برای نوشتن لاگهای ساختاریافته روی دیسک، مناسب برای استقرارهای محلی یا کانتینریشده.
- Azure Log Analytics و Application Insights Sink: برای تلهمتری متمرکز در منابع Azure.
- OpenTelemetry Sink: برای ردیابی توزیعشده و یکپارچگی با پلتفرمهای نظارتی شخصثالث.
میزان جزئیات لاگها را میتوان برای هر مولفه بهصورت جداگانه تنظیم کرد تا توسعهدهندگان بتوانند تمرکز خود را روی روتینگ API، تولید کوئری یا میانافزار امنیتی بگذارند. همچنین تیم توسعه لاگبرداری فیلترشده را معرفی کرده تا نویز لاگها در محیطهای پرترافیک کاهش یابد.
سخن نهایی
در بهروزرسانیهای آینده، انتظار میرود پشتیبانی از ETagها، درخواستهای شرطی و رخدادهای تشخیص ساختاریافته گسترش یابد.
ابزار DAB بهصورت پکیج NuGet یا کانتینر MCR عرضه میشود و افزونه اختصاصی Visual Studio Code هم دارد. توسعهدهندگان میتوانند برای یادداشتهای انتشار، نمونههای پیکربندی و گفتوگوهای جامعه کاربری، به مخزن رسمی GitHub یا وبلاگ توسعه Azure SQL مراجعه کنند.
منبع: infoq.com




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