¿Qué es WEB API?

 

Una WEB API es una plataforma para desarrollar servicios basados ​​en HTTP / HTTPS que pueden ser utilizados por aplicaciones nativas como teléfonos inteligentes, tabletas y cualquier navegador. La WEB API es una parte central de ASP.NET y proporciona formas de crear servicios Restful y puede ser utilizada por cualquier aplicación que pueda entender las comunicaciones HTTP.

webapi


Características de WEB API

  • Admite acciones CRUD basadas en convenciones, ya que funciona con los verbos HTTP GET, POST, PUT y DELETE.
  • Las respuestas tienen un encabezado de Aceptar y un código de estado HTTP.
  • Las respuestas están formateadas por MediaTypeFormatter de WEB API en JSON, XML o cualquier formato que desee agregar como MediaTypeFormatter.
  • Puede aceptar y generar el contenido que puede no estar orientado a objetos como imágenes, archivos PDF, etc.
  • Tiene soporte automático para OData. Por lo tanto, colocando el nuevo atributo [Queryable] en un método de controlador que devuelve IQueryable, los clientes pueden usar el método para la composición de consulta OData.
  • Puede alojarse en la aplicación o en IIS.
  • También es compatible con las características de MVC, tales como enrutamiento, controladores, resultados de acciones, filtro, carpetas de modelo, contenedor IOC o inyección de dependencia que lo hace más simple y robusto.

¿Por qué elegir WEB API?

  • Si necesitamos un servicio web y no necesitamos SOAP, entonces ASP.Net Web API es la mejor opción.
  • Se utiliza para crear servicios HTTP simples, que no estén basados ​​en SOAP, en la parte superior de la canalización de mensajes de WCF existente.
  • No tiene una configuración tediosa y extensa como el servicio WCF REST.
  • Creación de servicio simple con WEB API. Con WCF REST Services, la creación de servicios es difícil.
  • Solo se basa en HTTP y es fácil de definir, exponer y consumir de manera REST-ful.
  • Es una arquitectura liviana y buena para dispositivos que tienen ancho de banda limitado como teléfonos inteligentes.
  • Es de código abierto.

Ahora que conocemos los beneficios de usar WEB API, procederemos a crear una, para esto usaremos  Visual Studio como entorno de desarrollo.

Creación de la WEB API

  • Crearemos un nuevo proyecto Aplicación web ASP.NET (.NET Framework).

NuevoProyecto

  • Seleccionaremos la plantilla Empty (Vacía) y marcaremos la opción Web API.

EmptyWebApi

 

Una vez creada la WEB API, nos crearemos una nueva clase Persona.cs sobre la carpeta Models.

  • Sobre Models > Agregar > Clase…

AgregarClasePersona

  • Elegiremos la opción Clase con el nombre Persona.

ClasePersona

Persona.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace TutorialWEBAPI.Models
{
 public class Persona
 {
  public int Id { get; set; }
  public String Nombre { get; set; }
  public String Apellido { get; set; }
 }
}

 

El siguiente paso será conectar la WEB API a nuestra BBDD alojada en Azure, para esto, tendremos que irmos al Explorador de servidores y sobre Conexiones de datos haremos click en Agregar conexión…

ServerExplorerNewConnection

Una vez en la ventana Agregar conexión, tendremos que rellenar los datos necesarios para permitir el acceso de nuestra WEB API a la BBDD. Tendremos que escribir tanto el Nombre del servidor, como sus datos de acceso y elegir la BBDD a la que vayamos a atacar.

AgregarConexion

 

Una vez ya establecida la conexión a la BBDD, toca crear la parte más importante de la WEB API, el controlador. En este crearemos dos métodos, uno para acceder a todas las personas y otro para mostrar los datos individualmente de cada persona.

    • Sobre la carpeta Controllers > Agregar > Controlador…

AgregarControlador

    • Una vez en la ventana, elegimos la opción Controlador Web API 2 – en blanco, hacemos click en Agregar y le ponemos el nombre TutorialController.

APIEmptyController

 

TutorialController.cs

using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Web.Http;
using TutorialWEBAPI.Models;

namespace TutorialWEBAPI.Controllers
{
 public class TutorialController : ApiController
 {
  String cadenaconexion;

  public TutorialController()
  {
   //CADENA DE CONEXIÓN PARA ACCEDER A LA BBDD ALOJADA EN AZURE
   cadenaconexion = @"Data Source=sqltajamarmmp1.database.windows.net;Initial Catalog=WebAPITutorial;User ID=userserver;Password=passwordserver";
  }

  [HttpGet]
  // GET: api/Tutorial
  public List<Persona> Get()
  {
   SqlDataReader reader = null;
   SqlConnection myConnection = new SqlConnection();

   myConnection.ConnectionString = cadenaconexion;

   SqlCommand sqlCmd = new SqlCommand();

   sqlCmd.CommandType = CommandType.Text;
   sqlCmd.CommandText = "SELECT * FROM PERSONAS";
   sqlCmd.Connection = myConnection;

   myConnection.Open();
  
   reader = sqlCmd.ExecuteReader();

   List<Persona> personas = new List<Persona>();

   while (reader.Read())
   {
    Persona per = new Persona();

    per.Id = Convert.ToInt32(reader.GetValue(0));
    per.Nombre = reader.GetValue(1).ToString();
    per.Apellido = reader.GetValue(2).ToString();

    personas.Add(per);
   }

   myConnection.Close();

   return personas;
  }

  [HttpGet]
  // GET: api/Tutorial/5
  public Persona Get(int id)
  {
   SqlDataReader reader = null;
   SqlConnection myConnection = new SqlConnection();

   myConnection.ConnectionString = cadenaconexion;

   SqlCommand sqlCmd = new SqlCommand();

   sqlCmd.CommandType = CommandType.Text;
   sqlCmd.CommandText = "SELECT * FROM PERSONAS WHERE ID=" + id + "";
   sqlCmd.Connection = myConnection;

   myConnection.Open();

   reader = sqlCmd.ExecuteReader();

   Persona per = null;
  
   while (reader.Read())
   {
    per = new Persona();

    per.Id = Convert.ToInt32(reader.GetValue(0));
    per.Nombre = reader.GetValue(1).ToString();
    per.Apellido = reader.GetValue(2).ToString();
   }

   myConnection.Close();

   return per;
  }
 }
}

Comprobar que la WEB API funciona bien.

 

Ya hemos terminado el código de la WEB API, ahora toca ejecutar nuestra aplicación para ver que accede bien a la BBDD alojada en Azure, para ello, una vez ejecutada la WEB API, en el buscador, añadiremos las siguientes rutas:

    • api/Tutorial para ver todas las personas.

urlapiturial

    • api/Tutorial/1 para ver la persona con el id 1.

urlapitutorial1

Una vez comprobada la funcionalidad de la WEB API, ya estará todo listo para que esta sea consumida desde cualquier aplicación que permita conexiones HTTP.

Para poner esto en práctica, me he creado un proyecto MVC del que dejaré el enlace a GitHub  junto a la WEB API para que podáis probarlo, así es como quedaría mi web al consumir los datos:

  •  Vista Personas.

VistaPersonas

  • Vista Detalles persona.

VistaDetallesPersona

Recordad siempre que la WEB API debe estar en ejecución para que los datos puedan ser consumidos por otras aplicaciones.

 

Sin duda alguna, la comodidad que da una WEB API a la hora de acceder a esta desde múltiple aplicaciones es extensa. ¿Qué opinas de las WEB API?

Escribe cualquier duda en la caja de comentarios y estaremos encantados de responderte. Nos vemos en el siguiente post.

¡Un saludo!

 

Autor: Miguel Moreno Pérez

Curso: Microsoft MCSA Web Applications + Microsoft MCSD App Builder + Xamarin

Centro: Tajamar

Año académico: 2017-2018

Códigohttps://github.com/Moperz96/TutorialWEBAPI

This Post Has One Comment

  1. Marcos Reply

    Esta super claro este articulo justo lo que buscaba, ojala nos hicieran el favor para dar continuidad de hacer ahora una inserción y edición sobre esto mismo, lo agradeceremos muchísimo.

Leave a Comment

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.