Para lograr esto necesitaremos diferentes controladores, estos no necesariamente son muy diferentes de los controladores tradicionales, pero poseen ciertas diferencias que los caracterizan, una de estas diferencias es su ubicación dentro de nuestro proyecto.
Generar un Controlador Web API
Un controlador Web API es un controlador de nuestra aplicación que nos permite utilizar sus métodos y acciones vía AJAX, esto nos permite lograr construir secciones de nuestra aplicación que podemos reutilizar en diferentes contextos.
Como en las aplicaciones de ASP.NET MVC se estila trabajar en base a convenciones, lo primero que debemos decidir es donde va a residir nuestro nuevo controlador Web API, esta ubicación es indiferente para su funcionamiento, pero puede servirnos a futuro para mejorar el orden de nuestro proyecto.
Supongamos entonces que nos hemos decidido por crear una carpeta llamada Api en la raíz de nuestra aplicación, una vez creada dicha carpeta vamos a hacer click derecho con nuestro mouse sobre ella y vamos a crear un controlador, debemos elegir la opción Controlador API con acciones de lectura y escritura vacías, elegimos un nombre único para dicho controlador, ya que al ser visible por todo el proyecto puede tener conflictos con otros controladores del mismo nombre.
Veamos en la siguiente imagen como creamos el archivo del controlador.
Notamos entonces que la acción para generar nuestro nuevo controlador es muy similar a la generación de un controlador normal.
Contenido
Como estamos construyendo un nuevo servicio, este se va a manejar con los métodos estándar de HTTP, estos son GET, POST, DELETE y PUT, al ser esta la norma nuestro controlador debe manejar cada uno de estos casos, por lo tanto si vemos el contenido de nuestro controlador tendremos algo similar a lo siguiente:
Vemos entonces que tenemos una acción estándar vacía con cada uno de los métodos HTTP mencionados y si somos aún más observadores veremos que el único que por defecto devuelve un valor es el método GET, que es el método de consulta por defecto.