Routing en WebAPI [quickly post]

Hace unos días, un colega me comentó acerca de un problema que tenía con el mecanismo de routing de WebAPI en un proyecto ASP.NET MVC 4. Me comento que se había basado en el primer post que escribí de la serie Web API, en el cual había utilizado un proyecto ASP.NET MVC 3.

Revisando el código generado en ambos proyecto, descubrí que dicho mecanismo había cambiado de una versión a la otra (sobre todo la ubicación en donde se definen las reglas de ruteo).

En proyectos ASP.NET MVC 4 la definición de dichas reglas esta a cargo de la clase WebApiConfig:

WebApiConfig

WebApiConfig

 Esta clase posee el método Register(HttpConfiguration config) el cual es utilizado para definir las reglas de routing que son especificas de Web API:

Agregando una nueva regla de ruteo.

Agregando una nueva regla de ruteo.

Por lo tanto, si necesito generar una nueva regla para los servicios expuestos con Web API, el lugar indicado es este. Hagamos un ejemplo sencillo para que quede claro. Vamos a agregar una nueva entrada llamada “NameApi” que permite al usuario utilizar URIs con el siguiente formato:

http://localhost:301283/api/values/1/sebis

Hecho esto, vayamos al controlador ValuesController (el cual hereda de ApiController) y  agreguemos un nuevo método GET (el hace provecho de esta nueva regla):

Get Method

Get Method

Ahora ejecutemos e invoquemos la URI (escrita unas líneas mas arriba) para corroborar que el servicio nos retorna el valor correcto:

Resultado obtenido del servicio

Resultado obtenido del servicio

Espero que les sea de utilidad.

Anuncios