Looking for asp.net-web-api2 Answers? Try Ask4KnowledgeBase
Looking for asp.net-web-api2 Keywords? Try Ask4Keywords

asp.net-web-api2Empezando con asp.net-web-api2


Observaciones

Esta sección proporciona una descripción general de qué es asp.net-web-api2, y por qué un desarrollador puede querer usarlo.

También debe mencionar cualquier tema importante en asp.net-web-api2, y vincularlo a los temas relacionados. Dado que la Documentación para asp.net-web-api2 es nueva, es posible que deba crear versiones iniciales de esos temas relacionados.

Hola Web Api

Web Api 2 - ejemplo de Hello World

Vamos a crear una nueva aplicación simple de Web Api que nos devolverá a Json con mensaje y nombre de usuario.
¡Empecemos! Primero cree un nuevo proyecto de Web Api usando Visual Studio y seleccione Plantilla vacía. Asegúrese de revisar la carpeta "Web Api":

introduzca la descripción de la imagen aquí

NOTA No elegí la plantilla "Web Api" porque agrega una referencia a ASP.NET MVC para proporcionar la página de ayuda de la API. Y en una aplicación tan básica no la necesitamos realmente.

Añadiendo un modelo

Un modelo es una clase de C # que representa algunos datos en nuestra aplicación. ASP.NET Web API puede serializar automáticamente el modelo a JSON, XML o algún otro formato (depende de la configuración).

En nuestra aplicación, crearemos un solo modelo, pero las aplicaciones del mundo real generalmente tienen muchos de ellos.

En el Explorador de soluciones, haga clic con el botón derecho en la carpeta Modelos . A continuación, seleccione Agregar y luego seleccione Clase . Nombra la clase "HelloMessage". Nuestro modelo necesita dos propiedades: MessageText y UserName :

namespace WebApiHelloWorld.Models
{
    public class HelloMessage
    {
        public string MessageText { get; set; }
        public string UserName { get; set; }
    }
}
 

Añadiendo un controlador

Un controlador maneja las solicitudes HTTP. Nuestra aplicación solo necesita un controlador que devuelva Json con el mensaje de saludo y el nombre de usuario (que pasaremos en la URL).
En el Explorador de soluciones, haga clic con el botón derecho en la carpeta Controladores . A continuación, seleccione Agregar y luego seleccione Controlador . En la ventana abierta, seleccione Web API Controller - Vacío y haga clic en Agregar .

introduzca la descripción de la imagen aquí

Establecer el nombre del controlador como "HelloController". Siguiente código de edición del controlador creado. Necesitamos agregar el método que devuelve el mensaje de saludo.

using System.Web.Http;
using WebApiHelloWorld.Models;

namespace WebApiHelloWorld.Controllers
{
    public class HelloController : ApiController
    {
        public HelloMessage GetMessage(string name)
        {
            HelloMessage message = new HelloMessage
            {
                MessageText = "Hello my Dear!",
                UserName = name
            };

            return message;
        }
    }
}
 

NOTA Asegúrese de agregar el using WebApiHelloWorld.Models . Sin él, su controlador no encontrará la clase HelloMessage.

Terminar

¡Eso es todo! Ahora solo necesitas compilar e iniciar tu aplicación. Simplemente presione Ctrl + F5 o simplemente F5 (para comenzar sin depurar). Visual studio lanzará navegador web. Necesitas llamar a tu controlador. Para hacerlo, agregue al final de la URL "/ api / hello? Name = John". El resultado debe ser:

{
    "MessageText": "Hello my Dear!",
    "UserName": "John"
}
 

Instalación o configuración

Instrucciones detalladas sobre cómo configurar o instalar asp.net-web-api 2.

¿Qué y por qué Asp.Net Web API2?

Qué y por qué ?

Web API2 de Asp.Net es la última versión de Web API. Es una forma fácil de implementar un servicio web RESTful utilizando toda la bondad que proporciona el marco Asp.Net. Una vez que entienda los principios básicos de REST, entonces será muy fácil implementar una API web de Asp.net. Web API2 se basa en el modelo de canalización modular y conectable de Asp.Net. Esto significa que cuando un servidor que aloja una API2 web recibe una solicitud, pasa primero a través de la red de solicitudes Asp.Nets. Esto le permite agregar fácilmente sus propios módulos si encuentra que las capacidades predeterminadas no son suficientes para sus necesidades. Con los anuncios recientes en ASP.net vNext esto también significa que puede alojar su Web API2 fuera de Windows Server, lo que abre una amplia gama de casos de uso. Vea aquí para más detalles.

Como funciona

Web API2 utiliza los conceptos de Controlador y Acción de MVC. Los recursos se asignan directamente a los controladores; por lo general, tendrá un controlador diferente para cada una de sus principales entidades de datos (Producto, Persona, Pedido, etc.). Web API2 utiliza el motor de enrutamiento Asp.Net para asignar direcciones URL a los controladores. Normalmente, las API se mantienen dentro de una /api/ ruta que ayuda a distinguir los controladores de API de otros que no son API en el mismo sitio web.

Las acciones se utilizan para asignar verbos HTTP específicos, por ejemplo, normalmente tendría una acción GET que devuelve todas las entidades. Esta acción respondería a /api/Products (donde 'productos' es su controlador) y se vería así:

 public IEnumerable<string> Get()
 {
     return new string[] { "value1", "value2" };
 }
 

También puede tener una acción GET que acepta una ID específica y devuelve una entidad específica. Respondería a /api/Products/81 y se vería así:

public string Get(int id)
 {
    return "value";
 }
 

Hay muchas ventajas ocultas en el uso de la API web que puede que no sepas pero que en realidad te ahorran mucho trabajo.

Web API2 es parte de 'One Asp.Net'

Web API2 es parte de la familia 'One Asp.Net', lo que significa que admite de forma nativa todas las excelentes funciones compartidas que puede usar actualmente con MVC o formularios web, esto incluye (estos son solo algunos ejemplos):

  • Marco de la entidad
  • Autorización e identidad
  • Andamio
  • Enrutamiento

Serialización y encuadernación de modelos

Web API2 está configurado de forma predeterminada para proporcionar respuestas en XML o JSON (JSON es el predeterminado). Sin embargo, como desarrollador, no necesita realizar ninguna conversión o análisis: simplemente devuelve un objeto fuertemente tipado y Web API2 lo convertirá a XML o JSON y lo devolverá al cliente que realiza la llamada, este es un proceso denominado Negociación de contenido. Este es un ejemplo de una acción GET que devuelve un objeto Producto fuertemente tipado.

 public Product GetProduct(int id)
 {
    var product = _products.FirstOrDefault(p => p.ID == id);
    if (product == null)
    {
       throw new HttpResponseException(HttpStatusCode.NotFound);
    }
    return Request.CreateResponse(HttpStatusCode.OK, product);
 }
 

Esto también funciona para solicitudes entrantes utilizando una función llamada Validación de modelo. Con la Validación del modelo, Web API2 puede validar y analizar los datos del cuerpo de respuesta entrante a un objeto fuertemente tipado para que pueda trabajar con su código. Este es un ejemplo de enlace de modelo:

 public HttpResponseMessage Post(Product product)
 {
     if (ModelState.IsValid)
     {
         // Do something with the product (not shown).
 
         return new HttpResponseMessage(HttpStatusCode.OK);
     }
     else
     {
         return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
     }
 }