
آموزش مباحث مقدماتی Minimal API در NET 7.
آموزش مباحث مقدماتی Minimal API در NET 7. یکی دیگر از آموزش های گروه آموزشی پرووید می باشد که در این قسمت آن را به شما معرفی می کنیم. این بسته آموزشی نیز یکی از دوره های آموزشی دیگر که در حوزه فارسی سازی آموزش های انگلیسی تنظیم شده است می باشد. عنوان این بسته آموزشی، آموزش مباحث اولیه Minimal API در NET 7. است که با نام اصلی Introduction to Minimal API in .NET 7 از شرکت Pluralsight منتشر شده است.
Minimal API ها چه هستند؟
ایده اصلی Minimal API ها از بین بردن بخش زیادی از وابستگی ها و dependency های غیرضرور در ساختن API های ساده میباشد. به عبارت دیگر، با استفاده از Minimal API ها می توانید به سادگی با استفاده از متدهایی از قبیل MapGet و MapPost و موارد مشابه دیگر اقدام به ایجاد کردن Endpoint های مختلف کنید. این موضوع باعث میشود تا بتوانید به سادگی request های وارد شده به API را با استفاده از HTTP Verb های مختلف پردازش نمایید.

متد های مختلفی در طراحی کردن یک Minimal API در اختیار ما قرار می گیرند که می توانیم از آنها برای ایجاد کردن Endpoint های مختلف استفاده کنیم. برای مثال متد MapGet به منظور ایجاد کردن یک Endpoint برای دریافت کردن HTTP Get request ها معرفی شده است. علاوه بر این، در زمان تعریف کردن Endpoint ها، می توانیم نوع خروجی مربوطه که قرار است به کلاینت ارسال بشود را نیز مشخص کنیم. استفاده کردن از Minimal API در ساختن و توسعه دادن مایکروسرویس ها نیز کاربرد زیادی دارد.
محدودیت های فعلی در استفاده کردن از Minimal API
استفاده کردن از Minimal API ها دارای محدودیت هایی نیز می باشد که در ادامه در رابطه با برخی از آنها صحبت می کنیم.
- عدم پشتیبانی شدن از فیلترها: در Minimal API ها از فیلتر ها پشتیبانی نمی شود. به عنوان مثال، امکان استفاده کردن از فیلتر هایی از قبیل IAsyncAuthorizationFilter و IAsyncActionFilter وجود ندارد.
- عدم پشتیبانی از model binding: امکان استفاده کردن از IModelBinderProvider و IModelBinderوجود ندارد.
- عدم پشتیبانی از binding در فرم ها: به عبارت دیگر از مواردی از قبیل IformFIle پشتیبانی نمی شود.
- عدم پشتیبانی از Validation: استفاده کردن از IModelValidator امکان پذیر نیست.
- عدم پشتیبانی از application model: به عبارت دیگر روشی برای اعمال کردن و یا ایجاد کردن convention های سفارشی وجود ندارد.
- عدم پشتیبانی از view rendering: به همین دلیل توصیه میشود که از Razor Pages برای view rendering استفاده کنید.
- عدم پشتیبانی از JsonPatch
- عدم پشتیبانی از OData
- عدم پشتیبانی از ApiVersioning
تعریف Endpointهای GET و POST در Minimal API با .NET 7
در آموزش Introduction to Minimal API in .NET 7، توسعه API با بررسی ساختار پروژه و مفاهیم اولیه ارتباطات API آغاز میشود. آشنایی با نحوه کار پروتکل HTTP و بررسی شیء Response کمک میکند نقش درخواست و پاسخ را در ارتباط میان کلاینت و سرور بهتر درک کنید. سپس با تعریف Endpointهای اولیه و اضافه کردن Parameterها، مسیر دریافت درخواست و تولید پاسخ را در یک ساختار ساده دنبال میکنید. این ترتیب آموزشی نشان میدهد چگونه میتوان بدون ایجاد ساختارهای اضافی برای هر عملیات، مسیرهای مشخصی را برای رسیدگی به درخواستهای HTTP در برنامه تعریف کرد.
در مراحل بعدی، Endpoint مربوط به GET برای یک Model Class و Endpoint مربوط به POST برای همان نوع داده بررسی میشوند. این دو عملیات، کاربردهای متفاوتی در API دارند: GET برای دریافت اطلاعات و POST معمولاً برای ارسال داده به سرور به کار میرود. با پیادهسازی آنها در کنار Model Class، ارتباط میان دادههای برنامه و مسیرهای HTTP روشنتر میشود. این بخش برای توسعهدهندگانی مفید است که میخواهند یک API مبتنی بر .NET 7 را با کد مستقیم و ساختار سادهتر پیادهسازی کنند و در عین حال، تفاوت میان عملیات دریافت و ارسال داده را در طراحی Endpointها رعایت کنند.
افزودن DTO و اعتبارسنجی دادهها در Minimal API
هنگامی که API دادهای را از کلاینت دریافت میکند، استفاده مستقیم از مدلهای داخلی برنامه همیشه بهترین انتخاب نیست. در این آموزش، اضافه کردن DTOها در کنار Endpointهای مربوط به Model Class بررسی میشود تا نقش اشیای انتقال داده در تعریف ورودیها و خروجیهای API روشن شود. DTO میتواند شکل دادهای را که از طریق مرز API منتقل میشود، از ساختار داخلی مورد استفاده برنامه جدا کند. این تفکیک به کنترل بهتر قراردادهای ارتباطی کمک میکند و باعث میشود تغییرات مدلهای داخلی لزوماً به تغییر یکسان در دادههای مبادلهشده با کلاینت منجر نشوند.
موضوع Data Validation نیز به بررسی اعتبار دادههای ورودی مربوط است. پیش از آنکه اطلاعات دریافتشده در منطق برنامه استفاده شوند، باید شرایط مورد انتظار درباره آنها مشخص باشد؛ برای مثال، وجود مقادیر ضروری یا رعایت محدودیتهای تعریفشده برای دادهها. در کنار این مبحث، قابلیت Produces نیز مطرح میشود که برای مشخص کردن انواع محتوای تولیدشده توسط Endpoint کاربرد دارد و به توصیف رفتار پاسخ API کمک میکند. ترکیب DTOها، اعتبارسنجی و تعریف دقیقتر پاسخها، پایهای برای طراحی قراردادهای قابل فهمتر فراهم میکند و مدیریت ورودیهای نامعتبر را به بخشی مشخص از پیادهسازی Minimal API تبدیل میسازد.
سرفصل مطالب آموزش ویدئویی مباحث مقدماتی Minimal API در NET 7.
- مقدمه
- چرا باید از Minimal API ها استفاده کنیم
- ایجاد کردن یک پروژه Minimal API
- برررسی کردن ساختار پروژه - قسمت اول
- برررسی کردن ساختار پروژه - قسمت دوم
- بررسی مفاهیم اولیه در کار کردن با API ها
- یک API چیست؟
- پروتکل HTTP چگونه کار می کند؟
- بررسی شی Request
- برسی شی Response
- بررسی کردن HTTP Verb ها
- بررسی کردن Endpoint های اولیه – قسمت اول
- بررسی کردن Endpoint های اولیه – قسمت دوم
- اضافه کردن یک Parameter
- اضافه کردن یک Model Class
- اضافه کردن Endpoint مربوط به GET برای Model Class – قسمت اول
- اضافه کردن Endpoint مربوط به GET برای Model Class – قسمت دوم
- اضافه کردن Endpoint مربوط به POST برای Model Class
- اضافه کردن CreatedAt و CreatedAtRoute و WithName
- اضافه کردن Produces
- اضافه کردن Dependency Injection
- اضافه کردن DTO ها
- اضافه کردن AutoMapper
- اضافه کردن اعتبارسنجی و یا Data Validation
- بررسی Dependency Injection
- اضافه کردن یک Response Type
- معرفی کردن یک چالش برای اضافه کردن Endpoint های مربوط به PUT و DELETE
- اضافه کردن Endpoint های مربوط به PUT و DELETE
