Permalink
Switch branches/tags
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
111 lines (81 sloc) 4.01 KB
layout title categories image tags description filename
post
Web API - Convention Based Routing
Web API
web-api-convention-based-routing.jpg
webapi
web api routing
Web API - Convention Based Routing
2018-05-15-web-api-convention-based-routing

Merhabalar bu yazımda Asp.NET Web API kullanımında Convention Based Routing konusunu inceleyeceğim. Yeni bir Web API projesini WEB API seçeneğini işaretleyip oluşturuyorum. App_Start klasörü içerisinde WebApiConfig.cs dosyasındaki default route ayarlarına bakabiliriz.

{% 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}/{id}",
            defaults: new { id = RouteParameter.Optional }
        );
    }
}

{% endhighlight %}

Kod bloğunda gördüğümüz gibi domainden sonra api/{controller}/{id} tanımlamasıya projeyi çalıştırdığımızda verileri alabiliriz.

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

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

ValueController üzerinde değişiklik yapıp bir List ekliyorum. Put,Post,Delete metotlarını ekliyorum.

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

    // GET api/values
    public IEnumerable<string> Get()
    {
        return itemList;
    }

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

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

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

    // DELETE api/values/5
    public void Delete(int id)
    {
        itemList.RemoveAt(id);
    }
}

{% endhighlight %}

Postman ile ValuesController adresine Get metodunu çağırdığımda statik list içerisine eklediğimiz değerlerin listesini görebiliyoruz.

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

Get metoduna id parametresi gönderiyoruz ve gönderdeğimiz index değerine karşılık gelen değeri görebiliriz.

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

Post metoduna new item ekliyoruz.

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

Get metoduyla listeyi tekrardan çektiğimizde yeni eklediğimiz değeri görebiliriz.

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

Put metoduyla index değeri 3 olan değeri update item olarak değiştiriyorum.

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

Get metoduyla değişiklik sonrasında listeyi tekrar yenileyip update item değerini görebiliriz.

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

Delete metoduyla indexi 3 olan değeri siliyoruz.

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

Silme işleminden sonra listeyi yenileyebiliriz.

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

Bu şekilde geleneksel rotalama (Convention Based Routing) konusunu incelemiş olduk. Bir sonraki makalede görüşmek üzere.