Llamadas asíncronas I


Carga animales en BBDD

llamada API interna

  Cargar Animales

 

Carga provincias desde JSON

llamada JSON interno

  Cargar Provincias

 

Carga libros google

Llamada APi externa

  Cargar Libros Harry Potter

 


¿Qué es y Cómo funciona?

Este ejemplo muestra 3 formularios que realizan una llamada asíncrona por Ajax:

  1. A una API (pública por CORS aquí y accedida mediante GET) que devuelve y muestra en un textarea varios animales.
  2. A un JSON para cargar en un textarea provincias españolas.
  3. A una API externa de Google Books que devuelve 10 títulos de libros relacionados con Harry Potter.

Las llamadas pueden ser visualizadas desde cualquier navegador en su herramienta de desarrollo "F12" (FireBug en FireFox, Herramienta para desarrolladores en Chrome, etc.)

 

Teoría

Un formulario con llamadas asíncronas tiene en mi opinión varios puntos mínimos obligatorios:

  1. Gestión de errores
    Tanto si realizamos una llamada a una API interna o externa, Servicio o cargamos un JSON/XML debemos tener en cuenta que ocurre si se produce un error bien porque la estructura de la entidad enviada no es correcta, porque el servicio ya no existe o ha devuelto un error por otras causas.
  2. Seguridad
    Personalmente para autorizar accesos "cross-domain" a APIs utilizo CORS (Cross-Origin Resource Sharing) frente a JSONP siempre y cuando se acepten los navegadores soportados.

 

Configuración y Test

Se ha utilizado Visual Studio Express 2013 para Web y actualmente Visual Comunity 2015.
La programación se ha desarrollado con C#, Razor y acceso a Base de Datos por Entity Framework.

Las tablas mostradas en la aplicación se encuentran en un Microsoft® SQL Server® 2012 y actualmente en SQL de Azure

El alojamiento de las páginas se realizó en https://www.smarterasp.net con el plan .NET ADVANCE y actualmente se han movido a 2 Aplicaciones Web en Azure: una para este proyecto Web MVC y otra para un WCF usada en un ejemplo.

Se ha testeado con exito en diferentes navegadores y sistemas operativos, en pantallas de PC, tabletas y moviles.