شماره تماس 09336863931 | 09178169907 پست الکترونیک provid.ir@gmail.com

آموزش شروع به کار با ASP.NET Web API قسمت #4

آموزش شروع به کار با ASP.NET Web API قسمت #4 یک سری آموزشی از وبسایت پرووید است که در رابطه با اصول مقدماتی ساخت Web API در ویژوال استادیو و دات نت تنظیم شده است. پس از این دوره ی آموزشی می توانید از بسته های آموزشی وبسایت پرووید در رابطه با Web API استفاده کنید.

معرفی Controller ها در Web API

همانطور که در قسمت قبلی دیدید در زمان ساخت یک Web API با استفاده از MVC یک Controller ساده به صورت پیش فرض برای ما ساخته شد. در این قسمت از این آموزش از وب سایت پرووید در رابطه با Controller ها در Web API به صورت ریز بینانه صحبت میکنیم. در Web API یک Controller بسیار شبیه به Controller در ASP.NET MVC می باشد. در واقع مسئولیت Controller ها هندل کردن HTTP Request ها و بعد از آن ارسال HTTP Response ها به سمت کلاینت میباشد. به طور ساده Controller ها در Web API یک کلاس است که می تواند در درون فولدر Controllers و یا هر فولدر دیگر از پروژه ساخته شود. نام یک Controller حتما باید با کلمه Controller خاتمه پیدا کند و باید از کلاس System.Web.Http.ApiController ارث بری کند.

تمامی متد های Controller از یک Web API را Action Method می نامیم. با ساخت یک پروژه از نوع Web API یک Controller به صورت پیش فرض در ویژوال استودیو ساخته می شود. در قسمت های قبلی که یک پروژه نمونه ساختیم کلاس زیر به صورت پیشفرض برای ما ساخته شد.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;

namespace MyWebAPI.Controllers
{
    public class ValuesController : ApiController
    {
        // GET: api/student
        public IEnumerable<string> Get()
        {
            return new string[] { "value1", "value2" };
        }

        // GET: api/student/5
        public string Get(int id)
        {
            return "value";
        }

        // POST: api/student
        public void Post([FromBody]string value)
        {
        }

        // PUT: api/student/5
        public void Put(int id, [FromBody]string value)
        {
        }

        // DELETE: api/student/5
        public void Delete(int id)
        {
        }
    }
}

همانطور که در کد بالا میبینید کلاس ValuesController از ApiController ارث بری می کند و شامل Action Method هایی است که نام آنها با HTTP Verb ها از قبیل GET و POST و PUT و DELETE نامگذاری شده اند. بر اساس URL مربوط به HTTP Request ورودی و HTTP Verb که می ‌توانند یکی از مقادیر GET و POST و PUT و PATCH و DELETE باشند Web API تصمیم می‌ گیرد که کدام Controller را و کدام Action Method را اجرا کند. برای مثال متد GET مسئول هندل کردن HTTP GET Request ها می باشد. لطفا تصویر زیر را با دقت ملاحظه کنید.

این تصویر جزئیات مربوط به یک Controller را در Web API به شما توضیح داده است.

آموزش ساخت Web API در ASP.NET Core 2.0

از شما دعوت می کنیم از بسته ی آموزش ساخت Web API در ASP.NET Core 2.0 دیدن کنید.

اگر می خواهید در نامگذاری Action Method ها ز HTTP Verb ها استفاده نکنید باید Attribute مناسبی را بر روی Action Method ها قرار دهید. این Attribute ها از قبیل HttpGet و HttpPost و HttpPut و غیره هستند. کد زیر دقیقا این موضوع را نشان می‌دهد.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;

namespace MyWebAPI.Controllers
{
    public class ValuesController : ApiController
    {
        [HttpGet]
        public IEnumerable<string> Values()
        {
            return new string[] { "value1", "value2" };
        }

        [HttpGet]
        public string Value(int id)
        {
            return "value";
        }

        [HttpPost]
        public void SaveNewValue([FromBody]string value)
        {
        }

        [HttpPut]
        public void UpdateValue(int id, [FromBody]string value)
        {
        }

        [HttpDelete]
        public void RemoveValue(int id)
        {
        }
    }
}

ویژگیهای یک Controller در Web API

  • باید از کلاس System.Web.Http.ApiController ارث بری کند.
  • میتواند در هر فولدری در پروژه ساخته شود اما توصیه می شود که Controller ها را در درون فولدر Controllers قرار دهید. این موضوع بر اساس یک Convention در نظر گرفته شده است.
  • در نامگذاری Action Method ها یا باید نام یک Action Method با یک HTTP Verb یکسان باشد یا باید در ابتدای نام یک Action Method از HTTP Verb مناسب و یک پسوند استفاده کرد و یا اگر می خواهید هر نامی را برای Action Method در نظر بگیرید باید از Attribute های مناسب در بالای نام آن Action Method استفاده کنیم.
  • نوع داده برگشتی و یا همان Return Type از یک Action Method می تواند هر نوع داده ای اولیه ای (Primitive Data Type) یا هر نوع داده ای پیچیده ای (Complex Data Type) باشد. در رابطه با این موضوع در قسمت های بعدی آموزش صحبت خواهیم کرد.

نظر بدهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *