Enviar datos a Azure Mobile Apps usando jQuery

Hola Mundo:

Este artículo es un tanto distinto a los que siempre se publican. Esta vez es sobre desarrollo, pero
consumiendo servicios publicados en Microsoft Azure.

Azure Mobile Apps es un servicio de Microsoft Azure que permite levantar, sin mayor esfuerzo, un backend para aplicaciones móviles. Este backend puede estar construido con ASP.NET o Node.js.
De cualquier manera, provee las herramientas para generar una REST API lista para ser consumida desde las aplicaciones cliente.

Me refiero a aplicaciones cliente y no móviles, porque estos servicios pueden ser consumidos desde cualquier lugar. Incluso desde un sistema web usando Javascript.

En este caso puntual, compartiré una ayuda de memoria para enviar datos usando jQuery usando el método AJAX:

$.ajax({
type: "POST",
contentType: "application/json; charset=UTF-8",
url: "https://xxxxxxx.azurewebsites.net/tables/xxxxxx",
headers: {'ZUMO-API-VERSION': '2.0.0', 'Content-Type': 'application/json'},
data: JSON.stringify({
"Campo1": "Valor1",
"Campo2": "Valor2"
}),
dataType: "json",
accept: "json",
success: function(datos){
console.log(datos)
alert('Datos reportados correctamente')
},
error: function(jqXHR, estado, error){
console.log(estado)
console.log(error)
},
complete: function(jqXHR, estado){
console.log(estado)
},
timeout: 1000000000
});

Lo relevante:

  • El type es POST. No olvidar que estamos enviando datos al servidor. Si tienes duda sobre esto, revisa este link: http://www.restapitutorial.com/lessons/httpmethods.html
  • contentType debe ser «application/json; charset=UTF-8». El servidor recibe datos en formato JSON. De otra forma, arrojará error 500.
  • La url es la dirección web del servicio. Esta es la forma más estándar si es que no han creado una personalizada.
  • La cabecera de la petición se indica en headers. Siempre debe estar incluido ‘ZUMO-API-VERSION’: ‘2.0.0’ y  ‘Content-Type’: ‘application/json’. En el caso que alguno falte, la consola indicará que hace falta una de las dos y arrojará un error 500 o 400.
  • En data se indican los datos que se enviarán. El método stringify del objeto JSON es el encargado de hacer que los datos que estamos enviando sigan el formato de JSON.  Recuerden que en contentType y en la cabecera se indica que estamos enviando datos en formato JSON. Si esto no está, recibirán un error 400.
  • El atributo accept le indica al servidor el formato en el que se requiere la respuesta.
  • El atributo dataType es usado por jQuery para «formatear» la respuesta antes de dejarla disponible para el trabajo con ella.
  • Success indica la función que se ejecutará cuando los datos se reporten correctamente.
  • Error indica la función que se ejecutará cuando se produzca un error en el reporte de datos.
  • Complete indica la función que se ejecutará luego de la ejecución de lo indicado en Success o Error.
  • Timeout indica el tiempo total de espera, en milisegundos, antes de cancelar la operación. Previene una ejecución casi infinita de la solicitud.
Nada más quería estar a la moda y jugar un rato con Javascript y Azure.
Espero que les sea de su total utilidad.

Funciones personalizadas en las hojas de calculo de Google

Hola Mundo:

Es común que las hojas de cálculo den para mucho y se construyan verdaderas herramientas personalizadas de cálculo en estas hojas de cálculo. Es el caso de Excel, donde se pueden construir formularios y tratamiento personalizado a cierto tipo de información a través de las macros hechas con una versión simplificada de Visual Basic.

Las hojas de cálculo de Google Docs también cuentan con esta funcionalidad de construir funciones propias. Estas funciones son creadas con Javascript en la plataforma de Google Apps Script.

En este ejemplo, construiremos 2 funciones que convierten grados Celsius a grados Farenheit y al revés.

 El código de fuente es:

//Funcion que convierte los grados celsius en farenheit

//La formula que utiliza es: ºF = (9/5) x ºC + 32

function convertirCelsius2Farenheit(gradosC) {

  var gradosF = 0;

  if (typeof gradosC != "number"){

    throw "Tiene que ser un número!!!";

  } else {

    gradosF = (9/5) * gradosC + 32;

  }

  return gradosF;

}

//Funcion que convierte los grados farenheit en celsius

//La formula que utiliza es: ºC = 5 / 9 ( ºF – 32 )

function convertirFarenheit2Celsius(gradosF) {

  var gradosC = 0;

  if (typeof gradosF != "number"){

    throw "Tiene que ser un número!!!";

  } else {

    gradosC = ºC = (5 / 9) * (gradosF-32);

  }

  return gradosC;

}

También pueden copiarlo desde acá: http://chopapp.com/#cv303vjp

Espero que les sea de utilidad.

¡Chau!

Aprende Javascript

Hola Mundo.

Navegando por internet, encontré esta página que enseña de una forma entretenida, sencilla y práctica los fundamentos de Javascript.
Consta de 28 ejercicios, donde van explicando los conceptos y ejercitando lo aprendido.
Está bastante entrete.

El link es: Este

Espero que lo puedan seguir y está orientado a principiantes.

Saludos!

Consultar servicio local desde Win8 App

Es muy común que las aplicaciones consulten contenido que está en internet, como por ejemplo, algún servicio REST o algo en XML o en cualquier formato que los datos vengan.
Todos los lenguajes tienen clases y métodos que, de alguna u otra forma, permiten la descarga del contenido y la lectura.

Como ven, consultar contenido externo es una tarea común que todos los lenguajes modernos y sistemas operativos de hoy hacen posible. Esto también incluye a Windows 8.

En Windows 8 ocurre un fenómeno particular. Consultar contenido externo no es complejo. Ni en el desarrollo de aplicaciones usando .NET (VB.NET o C# y XAML) ni usando las bibliotecas de WinJS, pero consultar contenido local es distinto.

Por medidas de seguridad en Windows 8 no se puede consultar por contenido alojado en la misma máquina. Ni contenido HTML ni servicios… ¡Nada!

Esta restricción se puede desactivar con la siguiente orden en Powershell

checknetisolation loopbackexempt –a –n=el_nombre_del_paquete

Ejecutando esa orden, ya se podrá consultar servicios en la misma máquina.

Pueden encontrar más información en el siguiente enlace:
http://blogs.msmvps.com/luisabreu/blog/2012/01/05/windows-8-adventures-getting-external-data-from-a-local-server-might-not-be-as-easy-as-you-expect/

¡Chau!