Documentos de Académico
Documentos de Profesional
Documentos de Cultura
NET AVANZADO
UNIDAD 4
Introducción
HTTP no es solo para servir las páginas web. HTTP es también una plataforma
eficaz para la creación de las API que exponen datos y servicios. HTTP es sencillo, fle-
xible y ubicua. Casi cualquier plataforma que se puede considerar tiene una biblioteca
de HTTP, por lo que los servicios HTTP pueden llegar a una amplia gama de clientes,
incluidos los exploradores, dispositivos móviles y aplicaciones de escritorio tradiciona-
les.
ASP.NET Web API es un marco para la creación de web API sobre .NET Fra-
mework. En este tutorial, utilizará ASP.NET Web API para crear un sitio web de API
que devuelve una lista de productos.
Cree un proyecto de API Web
En este tutorial, utilizará ASP.NET Web API para crear un sitio web de API que
devuelve una lista de productos. La página de web front-end utiliza jQuery para mostrar
los resultados.
Agregar un modelo
namespace ProductsApp.Models
{
public class Product
{
public int Id { get; set; }
public string Name { get; set; }
public string Category { get; set; }
public decimal Price { get; set; }
}
}
Agregar un controlador
Si este archivo ya no está abierto, haga doble clic en el archivo para abrirlo. Re-
emplace el código de este archivo con lo siguiente:
using ProductsApp.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Web.Http;
namespace ProductsApp.Controllers
{
public class ProductsController : ApiController
{
Product[] products = new Product[]
{
new Product { Id = 1, Name = "Tomato Soup", Category = "Grocer-
ies", Price = 1 },
new Product { Id = 2, Name = "Yo-yo", Category = "Toys", Price =
3.75M },
new Product { Id = 3, Name = "Hammer", Category = "Hardware",
Price = 16.99M }
};
Para simplificar el ejemplo, los productos se almacenan en una matriz fija dentro
de la clase de controlador. Por supuesto, en una aplicación real, podría consultar una
base de datos o utilizar algún otro origen de datos externo.
Ya está. Tiene una API web de trabajo. Cada método en el controlador corres-
ponde a uno o varios URI:
Método de controlador Identificador URI
GetAllProducts productos/api /
GetProduct /api/products/id
JSON
Al diseñar una aplicación que se comunicará con un equipo remoto, se debe se-
leccionar un protocolo para el formato e intercambio de los datos. Existe una variedad
de opciones abiertas y estandarizadas y la elección ideal depende de los requisitos de las
aplicaciones y de la funcionalidad preexistente. Por ejemplo, los servicios web basados
en SOAP dan formato a los datos en una carga XML contenida en una envoltura SOAP.
Ahora compárelo con la forma en que crearía e inicializaría una matriz en Ja-
vaScript sin la notación literal:
var continents = new Array();
continents[0] = "Europe";
continents[1] = "Asia";
continents[2] = "Australia";
continents[3] = "Antarctica";
continents[4] = "North America";
continents[5] = "South America";
continents[6] = "Africa";
Los ejemplos presentados hasta ahora ilustran el uso de literales de cadena y nu-
méricos dentro de literales de matriz y de objeto. También se puede expresar un gráfico
completo mediante uso recursivo de la notación, de manera tal que los valores de los
elementos de matriz y de miembros de objetos puedan, a su vez, usar literales de objetos
y de matriz. Por ejemplo, el siguiente fragmento de código ilustra un objeto que tiene
una matriz como miembro (PhoneNumbers), donde la matriz está compuesta por una
lista de objetos.
var contact = {
"Name": "John Doe",
"PermissionToCall": true,
"PhoneNumbers": [
{
"Location": "Home",
"Number": "555-555-1234"
},
{
"Location": "Work",
"Number": "555-555-9999 Ext. 123"
}
]
};
if (contact.PermissionToCall)
{
alert("Call " + contact.Name + " at " + contact.PhoneNumbers[0].Number);
}
Bibliografía
- Jay Hilyard, Stephen Teilhet. (). C# 3.0 Cookbook, Third Edition: More than 250
solutions for C# 3.0 programmers. O'Reilly Media
- Troelsen, A., & Japikse, P. (2015). C# 6.0 And The .NET 4.6 Framework, 7th
Edition. Washington: Apress.