Web API - Action Based Routing

Yazılım  /  08.06.2018

Merhabalar bu yazımda Asp.NET Web API kullanımında Action Based Routing konusunu inceleyeceğim. Bir önceki makalede Convention Based Routing 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.

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

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

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

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

Default Route

Bu şekilde Action 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