آنچه در این صفحه می خوانید:
- معرفی ASP.NET Web API
- ویژگی های ASP.NET Web API
- کاربرد ASP.NET Web API
- ASP.NET Web API چگونه کار می کند؟
- مثال ASP.NET Web API
معرفی ASP.NET Web API
ASP.NET Web API یک فریمورک است که باعث سهولت در ایجاد سرویس HTTP می شود و به طیف گسترده ای از کلاینت ها، از جمله مرورگرها و دستگاه های تلفن همراه دسترسی دارند. ASP.NET Web API پلتفرم ایده آل برای ساخت برنامه های RESTful در NET Framework. است. ASP.NET Web API فریمورک گسترده برای ایجاد سرویس مبتنی بر HTTP است که در برنامه های مختلف و در سیستم عامل های مختلف مانند وب، ویندوز، تلفن همراه و غیره اجرا می شود. ASP.NET Web API همانند برنامه وب ASP.NET MVC کار می کند به جز اینکه به جای نمایش اچ تی ام ال، داده ها را به عنوان پاسخ ارسال می کند. Web API مانند وب سرویس یا WCF است با این تفاوت که تنها از پروتکل HTTP پشتیبانی می کند. ASP.NET Web API فریمورکی برای ساخت سرویس HTTP است که از هر کلاینت از جمله مرورگرها و دستگاه های تلفن همراه قابل دسترسی است. این بستر ایده آل برای ساختن برنامه های کاربردی RESTful در فریمورک NET. است.
ویژگی های ASP.NET Web API
- ایجاد شده در بالای NET و پشتیبانی از خطوط درخواست / پاسخ ASP.NET
- NET Web API نقشه فعلی HTTP را به نام متدها معرفی می کند.
- پشتیبانی از جی سان، اکس ام ال، BSON
- ASP.NET Web API بستر ایده آل برای ایجاد سرویس RESTful است.
- ASP.NET Web API از قالب های مختلف داده های پاسخ پشتیبانی می کند. پشتیبانی داخلی برای قالب JSON، XML، BSON.
- ASP.NET Web API را می توان در IIS، خود میزبان یا سایر سرورهای وب که از NET 4.0+ پشتیبانی می کنند، میزبانی کرد.
- فریمورک API Web ASP.NET شامل HttpClient جدید برای ارتباط با سرور API Web است. HttpClient را می توان در سمت سرور ASP.MVC، برنامه Windows Form، برنامه کنسول یا سایر برنامه ها استفاده کرد.
کاربرد ASP.NET Web API
در مورد ASP.NET Web API روشی آسان برای پیاده سازی وب سرویس RESTful با استفاده از فریمورک NET. است. سرویس های وب RESTful مواردی هستند که از HTTP به عنوان روش اساسی برای برقراری ارتباط استفاده می کنند. API Web ASP.NET اساساً به عنوان فریمورکی تعریف شده است که توسعه سرویس HTTP را قادر می سازد تا به اشخاص کلاینت مانند مرورگرها، دستگاه ها یا رایانه های لوحی دسترسی پیدا کنند. ASP.NET Web API را می توان با MVC برای هر نوع برنامه استفاده کرد. از این رو، API های وب دات نت برای توسعه برنامه وب ASP.NET بسیار مهم هستند.
نوع وب سایت ASP.NET که می خواهید وب سایت MVC یا WebForms را انتخاب کنید، AJAX لازم است. API Web می تواند به شما در توسعه برنامه ASP.NET از طریق AJAX کمک کند. با استفاده از فریمورک API Web، به راحتی می توانید سرویسی را ایجاد کنید که بتوانند روی اشخاص مختلف اجرا شوند. از این رو، API Web ساخت برنامه های ASP.NET سازگار با هر مرورگر و تقریبا هر دستگاه را برای توسعه دهندگان آسان تر می کند. با Web API به کلیه ویژگی های HTTP مانند URI، هدرهای درخواست / پاسخ، قالب بندی محتوا، ذخیره سازی و غیره دسترسی پیدا می کنید و از این رو در مقایسه با سرویس های استراحت WCF (که نیاز به تعریف تنظیمات پیکربندی اضافی برای دستگاه های مختلف) دارد، توسعه برنامه های وب ASP.NET با استفاده از وب سرویس RESTful از طریق API های وب بسیار ساده تر است.
اگر به دنبال بک اند برای توسعه برنامه های بومی برای دستگاه های تلفن همراه که از SOAP پشتیبانی نمی کنند، ASP.NET Web API می تواند هدف شما باشد. تقریباً هر برنامه بومی در حال اجرا بر روی دستگاه تلفن همراه به غیر از ویندوز یکی می تواند از ASP.NET Web API به عنوان پس زمینه استفاده کند. از این رو، API Web برای استفاده با برنامه های بومی که نیاز به وب سرویس دارند اما به پشتیبانی SOAP مناسب نیست، مناسب است.
توسعه برنامه های وب مبتنی بر AJAX توسط ASP.NET Web API یک گزینه ایده آل برای توسعه برنامه های وب کلاینت است که به شدت به AJAX اعتماد دارد و به تنظیمات پیکربندی گسترده ای مانند سرویس WCF REST احتیاج ندارد.
API Web از معماری سبک پشتیبانی می کند که از سرویس HTTP بهره می برد تا به طیف وسیع تری از کلاینت ها برسد. در مقایسه با WCF، ایجاد سرویس با استفاده از ASP.NET Web API بسیار آسان تر و سریعتر است. از این رو، API های وب می توانند از راه های مختلف قابل توجهی در توسعه برنامه وب به ویژه هنگامی که برنامه وب ASP.NET هستند مفید باشند.
بنابراین، آیا به دنبال توسعه برنامه های وب ASP.NET مبتنی بر فناوری وب API هستید، بنابراین به دنبال متخصصان باشید تا به شما کمک کنند. در Brainvire، ما توسعه دهندگان NET. را تجربه کرده ایم که با استفاده از آخرین فناوری ها و ابزارها، تجربه غنی در توسعه برنامه ASP.NET دارند. برای ما به نقل قول رایگان و جزئیات بیشتر در مورد سرویس ما نزدیک شوید.
ASP.NET Web API چگونه کار می کند؟
ASP.NET Web API معماری مبتنی بر وب سبک است که از HTTP به عنوان پروتکل برنامه استفاده می کند. مسیریابی در API Web ASP.NET در مقایسه با روشی که در ASP.NET MVC کار می کند کمی متفاوت عمل می کند. تفاوت اساسی بین مسیریابی در MVC و مسیریابی در API Web در این است که وب API برای انتخاب عمل از روش HTTP و نه مسیر URI استفاده می کند. فریمورک API Web از جدول مسیریابی برای تعیین اینکه کدام از درخواست ها برای درخواست خاص استفاده می شود، استفاده می کند. شما باید پارامترهای مسیریابی را در پرونده WebApiConfig.cs که در فهرست App_Start ساکن است، مشخص کنید.
در اینجا مثالی وجود دارد که نشان می دهد چگونه مسیریابی پیکربندی شده است:
routes.MapHttpRoute(
name: "Packt API Default",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
قطعه کد زیر نحوه پیکربندی مسیریابی را با نام های عملی نشان می دهد:
routes.MapHttpRoute(
name: "PacktActionApi",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
);
ASP.NET Web API داده های ساختاری مانند JSON و XML را به عنوان پاسخ تولید می کند. این می تواند درخواست های دریافتی را به اقدامات مبتنی بر افعال HTTP و نه تنها نام های عمل کند. همچنین، API Web ASP.NET را می توان خارج از محیط زمان اجرا ASP.NET و زمینه وب سرور IIS قرار داد.
مثال ASP.NET Web API
سریال سازی ساده
ASP.NET برای تجربیات وب مدرن طراحی شده است. نقاط پایانی به طور خودکار کلاسهای خود را به صورت صحیح قالب بندی می کنند تا JSON از جعبه خارج شود. به پیکربندی خاصی مورد نیاز نیست. البته سریال سازی می تواند برای نقاط پایانی که نیازهای منحصر به فردی دارند، سفارشی سازی شود.
[ApiController]
public class PeopleController : ControllerBase
{
[HttpGet("people/all")]
public ActionResult<IEnumerable<Person>> GetAll()
{
return new []
{
new Person { Name = "Ana" },
new Person { Name = "Felipe" },
new Person { Name = "Emillia" }
};
}
}
public class Person
{
public string Name { get; set; }
}
مسیریابی در کنار کد شما
ASP.NET به شما امکان می دهد مسیرها و افعال را با کد خود متناسب با استفاده از ویژگی ها تعریف کنید. داده های مربوط به مسیر درخواست، رشته پرس و جو و بدنه درخواست به طور خودکار به پارامترهای متد محدود می شوند.
[ApiController]
public class PeopleApiController : ControllerBase
{
// Some code omitted for clarity
[HttpGet("people/{id}")]
public ActionResult<Person> Get(int id)
{
var person = db.People.Find(id);
if (person == null)
{
return NotFound();
}
return person;
}
[HttpPost("people/create")]
public IActionResult Create(Person person)
{
db.Add(person);
db.SaveChanges();
return Accepted();
}
}