در قسمت قبل موفق شدیم بر اساس OpenAPI specification endpoint تنظیم شده، رابط کاربری خودکاری را توسط ابزار Swagger-UI تولید کنیم. در ادامه میخواهیم این مستندات تولید شده را غنیتر کرده و کیفیت آنرا بهبود دهیم.
استفاده از XML Comments برای بهبود کیفیت مستندات API
نوشتن توضیحات XML ای برای متدها و پارامترها در پروژههای داتنتی، روشی استاندارد و شناخته شدهاست. برای نمونه در AuthorsController، میخواهیم توض ...
پس از معرفی اجمالی OpenAPI و Swagger در قسمت قبل و همچنین ارائهی یک برنامهی نمونه که آنرا به مرور تکمیل خواهیم کرد، در ادامه کتابخانهی Swashbuckle را نصب کرده و شروع به مستند سازی API ارائه شده خواهیم کرد. نصب Swashbuckle (سوواَش باکِل)
اگر عبارت Swashbuckle.AspNetCore را در سایت NuGet جستجو کنیم ، چندین بستهی مختلف مرتبط با آنرا خواهیم یافت. ما در این بین، بیشتر به این بستهها علاقمندیم:
- Swashbuckle.AspNe ...
مستندسازی یک API، مهم است. اگر این API عمومی باشد، نیاز به مستندات ویژهی آن، امری بدیهی است و اگر عمومی نباشد، باز هم باید دارای مستندات باشد؛ از این جهت که سایر توسعه دهندههای یک تیم بتوانند به سادگی از آن استفاده کنند و همچنین نیازی نباشد تا یک سؤال مشخص را بارها پاسخ داد. به علاوه عدم وجود مستندات کافی در مورد یک API سبب خواهد شد تا سایر توسعه دهندهها تصور کنند قابلیتی که مدنظرشان است هنوز پیاده سازی نشدهاست و خودشان شروع به توسعهی ...
پیشتر مطلب « روش استفادهی صحیح از HttpClient در برنامههای دات نت » را مطالعه کرده بودید. پس از ارائهی NET Core 2.1.، این مجموعه به همراه یک IHttpClientFactory نیز ارائه میشود که در اینجا قصد داریم این مورد و همچنین سایر موارد مشابه را بررسی کنیم.
صورت مساله
قصد داریم اطلاعاتی را با فرمت JSON، از یک API خارجی، توسط HttpClient دریافت و سپس آنرا به یک DTO فرضی، به نام GitHubRepositor ...
قابلیت مقدار دهی اولیهی بانک اطلاعاتی (data seeding) توسط اجرای کدهای Migrations و متد DbMigrationConfiguration.Seed آن، در حین انتقال از EF 6x به EF Core ناپدید شده بود که مجددا با ارائهی EF Core 2.1 به نحو کاملا متفاوتی توسط یک Fluent API، در متد OnModelCreating قابل تعریف و استفادهاست. کلاسهای موجودیتهای مثال جاری
برای توضیح قابلیت جدید مقدار دهی اولیهی بانک اطلاعاتی در +EF Core 2.1، از کلاسهای موجودیتهای ذیل ...
از EF Core 2.1 به بعد، قابلیت جدیدی تحت عنوان «تبدیلگرهای مقدار»، به آن اضافه شدهاست. برای مثال در EF Core، زمانیکه اطلاعات Enums، در بانک اطلاعاتی ذخیره میشوند، معادل عددی آنها درج خواهند شد. اگر علاقمند باشید تا بجای این مقادیر عددی دقیقا همان رشتهی تعریف کنندهی Enum درج شود، میتوان یک «تبدیلگر مقدار» را برای آن نوشت. برای مثال در موجودیت Rider زیر، خاصیت Mount از نوع یک enum است. public class Rider
{
public int Id { ge ...
در مطلب « ارتقاء به ASP.NET Core 1.0 - قسمت 7 - کار با فایلهای config
» با مقدمات کار با فایلهای تنظیمات برنامه و تامین کنندههای مختلف آنها آشنا شدیم. در این مطلب قصد داریم یک نمونهی سفارشی تامین کنندههای تنظیمات برنامه را بر اساس دریافت و ذخیره سازی اطلاعات در بانک اطلاعاتی، تهیه کنیم.
ساختار موجودیت تنظیمات برنامه
تنظیمات برنامه با هر قالبی که تهیه شوند، دست آخر به صورت یک <Dictionary<s ...
این روزها ساخت کتابخانههای مدرن جاوا اسکریپتی که نیازهای انواع و اقسام توسعه دهندگان آنها را پوشش دهند، مشکل است. این کتابخانهها باید دارای بستههای مختلفی با پشتیبانی از ES5 و ES2015 به بعد باشند؛ همچنین ارائهی متادیتای مخصوص TypeScript را نیز پشتیبانی کنند. به علاوه مباحث کارآیی، minification و tree shaking (حذف کدهای مرده) را نیز مدنظر داشته باشید.
پیشتر مطلبی را در مورد ساخت کتابخانههای مخصوص Angular را به کمک Angular ...
Request Validation یا اعتبارسنجی درخواستها چیست؟
اگر با وب فرمها کار کرده باشید، حتما با تنظیم زیر در فایل web.config برنامههای وب آشنا هستید: <pages validaterequest="false"></pages>
که در آن اعتبارسنجی درخواست رسیده جهت امکان ورود برای مثال اطلاعات HTML ای، به طور کامل خاموش شدهاست (به صورت سراسری در کل برنامه) و یا اگر از MVC 5.x استفاده میکنید، ویژگی [ValidateInput(false) ...
یکی از مزایای کار با ORMها، امکان تعویض نوع بانک اطلاعاتی برنامه، بدون نیازی به تغییری در کدهای برنامه است. برای مثال فرض کنید میخواهید با تغییر رشتهی اتصالی برنامه، یکبار از بانک اطلاعاتی SQL Server و بار دیگر از بانک اطلاعاتی کاملا متفاوتی مانند SQLite استفاده کنید. در این مطلب نکات استفادهی از چندین نوع بانک اطلاعاتی متفاوت را در برنامههای مبتنی بر EF Core بررسی خواهیم کرد.
هر بانک اطلاعاتی باید Migration و Context خاص خ ...