نظرات مطالب
ASP.NET Web API - قسمت دوم
سلام.
اگر نسخهی آفلاین RC اون رو میخواید، از این لینک دریافت کنید.
بله، Web API در ASP.NET Web Forms هم قابل استفاده است.
در پروژههای Web Forms، از دیالوگ Add New Item، گزینهی Web API Controller Class رو باید انتخاب کنید. route رو هم باید در متد Application_Start فایل Global.asax به صورت ذیل تعریف کنید.
اگر نسخهی آفلاین RC اون رو میخواید، از این لینک دریافت کنید.
بله، Web API در ASP.NET Web Forms هم قابل استفاده است.
در پروژههای Web Forms، از دیالوگ Add New Item، گزینهی Web API Controller Class رو باید انتخاب کنید. route رو هم باید در متد Application_Start فایل Global.asax به صورت ذیل تعریف کنید.
void Application_Start(object sender, EventArgs e) { RouteTable.Routes.MapHttpRoute( name: "DefaultApi", routeTemplate: "api/{controller}/{id}", defaults: new { id = System.Web.Http.RouteParameter.Optional } ); }
یک نکتهی تکمیلی: چگونه فقط Web API را در ASP.NET Core بدون اضافات MVC آن داشته باشیم؟
زمانیکه در کلاس آغازین برنامه، متد AddMvc را فراخوانی میکنیم، به همراه آن AddViews، AddRazorViewEngine، AddRazorPages، AddCacheTagHelper و غیره نیز به صورت خودکار به برنامه اضافه میشوند و وجود آنها در آخر به معنای یکی بودن MVC و Web API با هم است. اما اگر برنامهی ما فقط یک برنامهی SPA، یا تک صفحهای وب باشد، عملا به هیچکدام از این قابلیتها نیازی نیست.
برای اینکه فقط Web API را فعال کنیم، باید از متد الحاقی دیگری به نام AddMvcCore استفاده کرد (البته در نگارش 3x این مورد با AddControllers سادهتر شدهاست). کار آن فعالسازی routing, attributes, filters, result executors, model binders, controllers است. برای دسترسی به آن تنها نصب سه بستهی ذیل کفایت میکنند:
در این حالت نحوهی استفادهی از MvcCore تنها، به صورت ذیل است؛ بدون به همراه داشتن ویژگیهای MVC، مانند کار با Views و TagHelpers:
نکتهی مهم: در این حالت چون قسمتهای پردازش View مربوط به MVC حذف میشوند، نمیتوان از کلاس پایه Controller جهت تعریف کنترلرها استفاده کرد؛ چون این کلاس پایه، بازگشت Viewها و Partial Viewها و غیره را نیز شامل میشود. اما همین کلاس پایه Controller از کلاس عمومیتری به نام ControllerBase مشتق میشود که به معنای پشتیبانی از Web API، بدون Viewها است. بنابراین نحوهی تعریف کنترلرها اینبار به صورت ذیل خواهد بود (مشتق شدهی از ControllerBase):
زمانیکه در کلاس آغازین برنامه، متد AddMvc را فراخوانی میکنیم، به همراه آن AddViews، AddRazorViewEngine، AddRazorPages، AddCacheTagHelper و غیره نیز به صورت خودکار به برنامه اضافه میشوند و وجود آنها در آخر به معنای یکی بودن MVC و Web API با هم است. اما اگر برنامهی ما فقط یک برنامهی SPA، یا تک صفحهای وب باشد، عملا به هیچکدام از این قابلیتها نیازی نیست.
برای اینکه فقط Web API را فعال کنیم، باید از متد الحاقی دیگری به نام AddMvcCore استفاده کرد (البته در نگارش 3x این مورد با AddControllers سادهتر شدهاست). کار آن فعالسازی routing, attributes, filters, result executors, model binders, controllers است. برای دسترسی به آن تنها نصب سه بستهی ذیل کفایت میکنند:
Microsoft.AspNetCore.Mvc.Core Microsoft.AspNetCore.Mvc.Cors Microsoft.AspNetCore.Mvc.Formatters.Json
namespace AspNetCoreWebAPIOnly { public class Startup { public void ConfigureServices(IServiceCollection services) { var mvcCoreBuilder = services.AddMvcCore(); mvcCoreBuilder .AddFormatterMappings() .AddJsonFormatters() .AddCors(); } public void Configure(IApplicationBuilder app, IHostingEnvironment env) { app.UseMvc(); } } }
نکتهی مهم: در این حالت چون قسمتهای پردازش View مربوط به MVC حذف میشوند، نمیتوان از کلاس پایه Controller جهت تعریف کنترلرها استفاده کرد؛ چون این کلاس پایه، بازگشت Viewها و Partial Viewها و غیره را نیز شامل میشود. اما همین کلاس پایه Controller از کلاس عمومیتری به نام ControllerBase مشتق میشود که به معنای پشتیبانی از Web API، بدون Viewها است. بنابراین نحوهی تعریف کنترلرها اینبار به صورت ذیل خواهد بود (مشتق شدهی از ControllerBase):
namespace AspNetCoreWebAPIOnly.Controllers { [Route("api/[controller]")] // ControllerBase instead of Controller public class ValuesController : ControllerBase { // GET api/values [HttpGet] public IEnumerable<string> Get() { return new[] { "value1", "value2" }; } } }
- بله. فقط بجای return Viewها شما بازگشت متداول http statusها را خواهید داشت مانند return NotFound و یا return Ok. مابقی کدهای آن تفاوتی نمیکند.
- هدف نحوهی نمایش این است که تزریق وابستگیهای ASP.NET Identity و امکانات تنظیم شدهی آن در این مثال، در یک کنترلر Web API هم کار میکند.
- اگر هدف صرفا استفاده از Single page applications و Web API است، روش استفادهی JWT متداولتر است.
- هدف نحوهی نمایش این است که تزریق وابستگیهای ASP.NET Identity و امکانات تنظیم شدهی آن در این مثال، در یک کنترلر Web API هم کار میکند.
- اگر هدف صرفا استفاده از Single page applications و Web API است، روش استفادهی JWT متداولتر است.
Ticketier project | ASP.NET Core Web API CRUD and Search | .NET 7 API | Full Course
Full Course Ticketier project with ASP.NET Core Web API (.NET 7 API ) and Entity Framework Core covering CRUD and Search step by step
In this video, we will create an ASP.NET Core Web API (.NET 7) project called Ticketier and implement full CRUD and Search functionality into it.
The focus of this project is to show you how you can build new ASP.NET Core Web API (.NET 7) project from 0 to 100 and implement CRUD and Search in it.
we will learn these topics together:
Entities
Dtos
Context
ORM
Http Methods
Swagger
AutoMapper
IQueryable
Where clause
نظرات اشتراکها
StructureMap 3.0 منتشر شد
سلام؛ اگه ممکنه در مورد نحوه تنظیم استراکچرمپ و web api راهنمایی کنید.
اشتراکها
دورهی 5 ساعته ASP.NET Core Web API
اشتراکها
کتابخانه XSound
HTML5 Web Audio API Library Demo