[ASP.NET Web API] Web API I – Mi primer proyecto

Posted on Actualizado enn


Hola a todos, últimamente me han preguntando bastante sobre como poder trabajar con Web API, por lo que espero realizar una pequeña serie de minitutoriales para mostrar como iniciar en este mundo, así que va el primero, y será bastante, vamos a revisar como creamos nuestro primer proyecto Web API.

Como una pequeña aproximación comentarpe un poco sobre Web API, Web API es una opción que tenemos disponible en el mundo .Net para el desarrollo de servicios REST, los cuáles basicamente trabajan sobre el protocolo HTTP, permitiendo hacer uso de los diferentes verbos disponibles como Get, Put, Post, Delete, entre otros. Otro de los puntos interesante al trabajar con Web API, es que vamos a gastar poco tiempo en configuraciones muchas veces tediosas y aburridas para enfocarnos más en la creación del servicio (en realidad lo más importante), lo anterior se logra por la idea de Convención/Configuración, es decir, a medida que desarrollamos servicios la misma convención que usa Web API nos va a brindar la configuración básica necesaria.

Y finalmente para dejar tanta carreta, algo supremamente importante es entender y tener claro que Web API NO es ASP.NET MVC!

Lo primero es crear una nueva aplicación de tipo ASP.NET Web Application, si quieres entender más del concepto de Todo en Uno para el desarrollo Web en Visual Studio 2013 te recomiendo el post del amigo @chalalo: Link!

image

Luego seleccionamos la plantilla Web API:

image

Una vez finaliza la creación del proyecto, ya tenemos toda la estructura necesaria para trabajar con servicios REST con Web API.

Todos los controladores en Web API deben heredar de la clase ApiController, disponible en el namespace System.Web.Http, los nombres de los controladores deben finalizar con el texto Controller, así entonces si creamos un controlador llamado Test, su nombre real será TestController.

Si revisamos la carpeta Controllers, podemos ver que la plantilla nos ha creado dos controladores, un HomeController de ASP.NET MVC y un ValuesControles de Web API, y dandole una mirada a ValuesController tenemos:

public class ValuesController : ApiController
{
	// GET api/values
	public IEnumerable Get()
	{
		return new string[] { "value1", "value2" };
	}

	// GET api/values/5
	public string Get(int id)
	{
		return "value";
	}

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

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

	// DELETE api/values/5
	public void Delete(int id)
	{
	}
}

Dicho controlador tiene ya varias acciones definidas, y en especial dos métodos Get para obtener datos, así que probemos esos dos métodos, para ello ejecutemos la aplicación y en la barra de direcciones adicionamos:

/api/Values el cual llama el método Get que retorna toda la colección de objetos y con /api/Values/id llama el método Get que recibe un id como parámetro.

Por el momento es todo, y como dicen en la TV (aún recuerdo de niño, porque ya no la veo) en el próximo capítulo realizaremos un CRUD completito.

Saludos!

15 comentarios sobre “[ASP.NET Web API] Web API I – Mi primer proyecto

    richard escribió:
    07/08/2013 en 12:51

    seguire tu proyecto amigo😀

    Jose escribió:
    07/09/2013 en 09:52

    Buenos días Julio, yo soy nuevo en esto. Queria saber si un Web API es la versión nueva de un Web Service o que ejemplos de usos tendría un Web API? Gracias

      Julio Avellaneda respondido:
      07/09/2013 en 11:18

      Hola Jose, la verdad pensar ahorita en los tradicionales web services (asmx) ya no aplica, web api solo se enfoca en servicios REST, es decir sobre el protocolo Http.

    Gilbert Blanco escribió:
    07/10/2013 en 14:35

    Eso es todo? Al menos hubiera comentado un poco más sobre la teoria sobre la que se basa el Web API.

    No te entendi cuando escribes y… Y al final para dejar tanta carreta…. La carreta de bueyes? o cual carreta.

      Julio Avellaneda respondido:
      07/10/2013 en 14:52

      Gilbert si quieres más teoría en la web la encuentras toda, de todas maneras agradezco tu opinión.

    Eduardo Alonso escribió:
    07/14/2013 en 00:28

    Gracias Julio se valora el aporte. me preguntaba si se podía hacer IQueryable el método donde te devuelve todos los registros, para aplicarle algún filtro en la propia URL. Saludos.

      Julio Avellaneda respondido:
      07/14/2013 en 07:57

      Hola Eduardo, gracias por tu comentario, claro que lo puedes hacer, es más, Web API tiene un gran soporte para OData, y aplicar los filtros que ya conoces, dentro de la serie también estará tocando ese tema.

      Saludos

    Antonio Contreras Sanchez escribió:
    07/22/2013 en 16:25

    Se me hace un aporte excelente, gracias por realizar esto saludos, seguiré todo hasta el final!!!

      Julio Avellaneda respondido:
      07/22/2013 en 16:44

      Gracias a ti Antonio por leerme, espero todo te sea de utilidad, saludos!

    Federico escribió:
    09/16/2013 en 19:06

    Perdón por la ignorancia pero estoy tratando de seguir el tutorial desde VS2012. No me carga los datos. Revisando tu código me doy cuenta de que no tengo la carpeta bin ni, obviamente, las dll generadas

    Julio Avellaneda respondido:
    09/23/2013 en 10:23

    Hola Federico, la carpeta bin se te genera al compilar, pero dime, te sale algún otro error? has revisado que tengas las dll en las referencias?

    Saludos.

    Andrés Meza escribió:
    09/29/2013 en 19:05

    Muy interesante para los que iniciamos con web api

    Hernan Azofeifa escribió:
    09/26/2016 en 12:49

    Saludos, una consulta, si yo tengo varios metodos a implementar que me devuelven información ejemplo de esto es Provincia, Ciudad, Poblado, puedo tener un solo controlador para devolver estos tres metodos, ejemplo api/Ubicacion/Provincia , api/Ubicacion/Ciudad, api/Ubicacion/ Poblado, gracias y espero su ayuda.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s