ایجاد سرویس Web API REST

سه شنبه 28 شهریور 1396

در این مقاله قصد داریم که نحوه ایجاد کردن سرویس ASP.NET Web API REST را به صورت گام به گام و تصویری و اجرای یک مثال عملی به شما آموزش بدهیم.

ایجاد سرویس Web API REST

ASP.NET Web API چیست؟

ASP.NET Web API یکی از تکنولوژی های سورس باز مایکروسافت است که برای ساخت سرویس های قدرتمند REST است که در میان تمام پلتفرم و دستگاه ها از طریق HTTP ارتباط برقرار می کند.اجازه دهید ما آن را عملا با استفاده از یک برنامه نمونه پیاده سازی کنیم.

گام اول)ایجاد کردن سرویس ASP.NET Web API

1)Microsoft Visual Studio 2015 را باز کنید.

2)به آدرس File>New>Project>ASP.NET Web Application Template بروید و یک پروژه با نام دلخواه خود ایجاد کنید سپس پنجره زیر باز می شود. قالب empty  را انتخاب کنید و گزینه Web API را مانند تصویر زیر تیک بزنید.

3)گزینه MVC empty application را انتخاب کنید و بر روی OK کلیک کنید.

4)بعد از افزودن MVC project پنجره Solution Explorer به صورت زیر خواهد شد:

پس از ایجاد پروژه ASP.NET Web API ،  ساختار پوشه سابق و پرونده ها به طور پیش فرض به پروژه اضافه می شوند که مشابه پروژه MVC است، بنابراین اجازه دهید ما در مورد آنها به صورت مختصر موارد زیر را بررسی کنیم:

->App_Start folder

این پوشه شامل جزئیات تنطیمات برنامه مانند مسیریابی، احراز هویت، فیلتر کردن URL و غیره است.

->Controller

این پوشه شامل کنترلر ها و متدهاست.کنترلر مسئول پردازش درخواست کاربر و بازگشت خروجی به صورت ویو است.

->Models

این فولدر شامل موجودیت ها یا ویژگی های مورد نیاز برای ذخیره مقادیر ورودی است.

گام دوم)

ایجاد کردن کلاس Model

بر روی پوشه Model در برنامه Web API ایجاد شده راست کلیک کنید، نام کلاس را EmpModel یا هر نام دلخواه انتخاب کنید و روی OK کلیک کنید.

کدهای زیر را در کلاس EmpModel قرار دهید.

EmpModel.cs 

public class EmpModel  
    {  
        public string Name { get; set; }  
        public string City { get; set; }  
    } 

گام سوم)

Web API Controller بیفزایید.

بر روی فولدر Controller کلیک راست کرده و Web API 2 Empty controller به صورت زیر ایجاد کنید.

حالا بر روی Add کلیک کنید و نام Home یا هر نام دلخواهی را برای آن انتخاب کنید.

حالا ما کلاس مدل و کلاس web API controller را می افزاییم.

بیایید متد را در کلاس HomeController به صورت زیر بسازیم:

HomeController.cs

using System;  
using System.Web.Http;  
  
namespace CreatingWebAPIService.Controllers  
{  
    public class HomeController : ApiController  
    {  
        [HttpPost]  
        public bool AddEmpDetails()  
        {  
            return true;  
            //write insert logic  
  
        }  
        [HttpGet]  
        public string GetEmpDetails()  
        {  
            return "علی احمدی";  
  
        }  
        [HttpDelete]  
        public string DeleteEmpDetails(string id)  
        {  
            return "جزئیات کارمند با این id حذف شد " + id;  
  
        }  
        [HttpPut]  
        public string UpdateEmpDetails(string Name, String Id)  
        {  
            return "جزئیات کارمند با این id به روز رسانی شد " + Name + " and Id " + Id;  
  
        }  
    }  
  
}  

در این کد ما 4 متد Insert, Update, Display و delete  رکورد ها را ایجاد کرده ایم.

متدهای web API controller بالا با متدهای HTTP  به صورت زیر تعریف شده اند.

GET: منابع (رکورد ها) را از منابع خاص مانند پایگاه داده SQL دریافت کنید.

POST:برای افزودن رکورد ها به منابع خاص مانند پایگاه داده های SQL و Oracle استفاده میشود.

PUT: برای تغییر دادن منابع یا رکورد ها مورد استفاده قرار میگیرد.

DELETE :برای حذف یک منبع یا رکورد خاص مورد استفاده قرار میگیرد.

گام چهارم)اجرای برنامه

در حال حاضر همه چیز اماده است پس برنامه را اجرا میکنیم،اروری مانند زیر نمایان میشود:

دلیل خطای فوق این است که ما از ساختار url که در مسیریابی برنامه web API قرار دارد پیروی نمی کنیم.در ادامه ساختار تعریف شده برای web API را که در فایل WebApiConfig.cs  قرار دارد مشاهده میکنید:

از ساختار مسیریابی بالا درمیابیم که ، ما میتوانیم به منابع با فرمت آدرس پایه url+api+apicontroller دسترسی داشته باشیم.

اکنون سرویس ما آماده است.

بیایید آن را با استفاده از (extension) اکتنشن REST client مرورگر آزمایش کنیم ، زیرا مرورگر فقط درخواست Get را که به صورت مستقیم وارد میشوند پشتیبانی میکند نه نوع دیگر.

آدرس سرویس ما به صورت http://localhost:56290/api/Home است ، که در پایین به شرح آن میپردازیم.

http://localhost:56290:آدرس پایه web API service است ، که بر حسب سرور شما میتواند متفاوت باشد.

api: این تنها تفاوت استفاده از درخواست Web API controller و MVC controller است.

Home:این نام Web API controller است.

گام پنجم)تست کردن سرویس Web API REST با استفاده از REST client.

اجازه دهید برنامه را به صورت زیر با استفاده از REST client  تست کنیم.

POST

در تصویر بالا سرویس Web API REST ، متد HTTP Post پاسخ  HTTP POST 200 Code Status را باز میگرداند به این معنی که سرویس REST با موفقیت اجرا شده است.

متد GET 

در تصویر بالا سرویس Web API REST ، متد HTTP  get پاسخ  Status برابر 200  OK است که به این معناست که سرویس REST با موفقیت اجرا شده است.

سرویس Web API REST به صورت پیش فرض ، خروجی بر حسب  message header مانند XML  یا JSON برمیگرداند.

از خروجی بالا مشخص میشود که فرمت خروجی به طور پیش فرض به هدر پیام (message format header) بستگی دارد.

متد Delete 

در تصویر بالا سرویس Web API REST ، متد HTTP Delete پاسخ  Status برابر 200  OK است که به این معناست که سرویس REST با موفقیت اجرا شده است.

فایل های ضمیمه

برنامه نویسان

نویسنده 3355 مقاله در برنامه نویسان

کاربرانی که از نویسنده این مقاله تشکر کرده اند

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید