Web API - Convention Based Routing

Yazılım  /  15.05.2018

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.

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 }
            );
        }
    }

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

Default Route Id

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

public class ValuesController : ApiController
    {
        static List<string> itemList = new List<string>()
        {
            "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);
        }
    }

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

Default Route

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

Default Route Id

Post metoduna new item ekliyoruz.

Default Route Post

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

Default Route

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

Default Route

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

Default Route

Delete metoduyla indexi 3 olan değeri siliyoruz.

Default Route

Silme işleminden sonra listeyi yenileyebiliriz.

Default Route

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

Not: Bu makale için düzeltme yada ekleme yapmak isterseniz buradan pull request yapabilirsiniz.

Okuma Süresi
2 dk.
Okuyabilirsiniz