Permalink
Switch branches/tags
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
84 lines (70 sloc) 2.77 KB
layout title categories image tags description filename
post
Web API - Action Based Routing
Web API
web-api-action-based-routing.jpg
webapi
web api routing
Web API - Action Based Routing
2018-06-08-web-api-action-based-routing

Merhabalar bu yazımda Asp.NET Web API kullanımında Action Based Routing konusunu inceleyeceğim. Bir önceki makalede Convention Based Routing{:target="_blank"}{:rel="nofollow"} konusunu işlemiştik. Convention based routing konusunda GET-POST-PUT-DELETE işlemleri metod isimlerinden anlaşılıp aksiyon alıyordu. Bu makalede ise farklı isimlerdeki metodlarımızda routing yapısına müdahale ederek ilgili işlemleri nasıl yapacağımızı inceleyeceğiz ayrıca aynı proje üzerinden devam edeceğim.

Öncelikle WebApiConfig.cs dosyasında routeTemplate yapısında {action} eklemesini yapıyorum.

{% highlight c# %} public static class WebApiConfig { public static void Register(HttpConfiguration config) { // Web API configuration and services

        // Web API routes
        config.MapHttpAttributeRoutes();

        config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}/{action}/{id}",
            defaults: new { id = RouteParameter.Optional }
        );
    }
}

{% endhighlight %}

Daha sonra ValuesController dosyamızdaki metotlarımızın isimlerini ve Attribute tiplerini ekliyoruz.

{% highlight c# %} public class ValuesController : ApiController { static List itemList = new List() { "Value0","Value1","Value2" };

    // GET api/values
    [HttpGet]
    public IEnumerable<string> GetList()
    {
        return itemList;
    }

    // GET api/values/5
    [HttpGet]
    public string GetItem(int id)
    {
        return itemList[id];
    }

    // POST api/values
    [HttpPost]
    public void PostData([FromBody]string value)
    {
        itemList.Add(value);
    }

    // PUT api/values/5
    [HttpPut]
    public void PutData(int id, [FromBody]string value)
    {
        itemList[id] = value;
    }

    // DELETE api/values/5
    [HttpDelete]
    public void DeleteData(int id)
    {
        itemList.RemoveAt(id);
    }
}

{% endhighlight %}

Bu şekilde postman üzerinden GetList metodunu çağırdığımızda verilerin listelendiğini görmüş olacağız.

![Default Route]({{ site.url }}{{ site.baseurl }}/images/news/web-api-action-based-routing/default.jpg){: .pic}

Bu şekilde Action Based Routing konusunu incelemiş olduk. Bir sonraki makalede görüşmek üzere.