Nueva funcionalidad API para Windows Azure Mobile Services

Esta semana se ha publicado nueva funcionalidad para Mobile Services. Anteriormente Mobile Service tenía dos opciones para ejecutar scripts:

  1. Asociados a datos. En la cual se define un modelo para los mismos y asociamos scripts para la inserción, actualización, eliminación y lectura.
  2. Tareas (Jobs). Nos permitía definir scripts que se ejecuten cada cierto periodo de tiempo o bien en demanda. Pero estos no admitían ser invocados mediante una dirección del servicio REST.

Actualmente se dispone de una tercera opción. Disponible desde este semana, denominada API. La cual nos permite definir, para los distintos verbos de HTTP un script para posteriormente ejecutarlo mediante la invocación de una dirección REST.

Anteriormente, si queríamos lograr este efecto, no teníamos otra alternativa que realizarlo en la sección de datos, aunque desde el punto de vista del diseño no era algo que esté bien modelado. Esta opción nos permite definir acciones con mayor elegancia y de una forma más correcta, teniendo una alternativa de servicios móviles completa y funcional.

Esto soluciona el problema mencionado en un post anterior.

Modificando el ejemplo anterior de Push notifications a Windows 8 podemos realizar las siguientes actividades:

  1. Ir a Windows Azure y seleccionar nuestro servicio de Mobile Services.
  2. Seleccionar el tab de API

image

 

3. En la barra inferior seleccionar la opción Crear.

4. Especificar un nombre para esa funcionalidad y especificar los permisos asociados para las operaciones GET, POST, PUT, PATCH, DELETE. Podemos modificar posteriormente los permisos asociados a estas operaciones.

image

5. Podemos modificar el script del post anteriormente referenciado para que funcione mediante el uso de API y permita su ejecución desde un servicio REST.

image

6. En este caso, estamos especificando que el script se ejecute como respuesta a una operación GET. Si quisiéramos que fuera mediante un POST podemos modificarlo indicando “exports.post” y de esta forma indicar el script para cada uno de los verbos.

7. En el tab de permisos podemos editar los valores para cada una de las operaciones.

8. Por último, la dirección que tendrá nuestra acción es https://{account}.azure-mobile.net/api/{accion} para mi caso puntual sería.

https://lagashmobile.azure-mobile.net/api/pruebaspush

9. Con esta nueva funcionalidad de API, ahora si, podemos invocar la acción programáticamente utilizando el siguiente código:

image 

Esta funcionalidad nos permite utilizar la facilidad de las librerías de Mobile Services para implementar Push Notifications hacia Windows 8, Windows Phone, iOS y Andriod, desde cualquiera de nuestras aplicaciones o sitios web.

Aplicación de ejemplo de Push Notifications a Windows 8 usando Windows Azure Mobile Services

Aquí les dejo la aplicación de ejemplo del post de push notifications a Windows 8.

Primero deberá descargar el código de ejemplo.

El archivo comprimido contiene:

  • Aplicación de Windows 8 que debe ser registrada en la tienda y recibe las notificaciones.
  • Archivo notifications.sql que crea la tabla utilizada en el servicio de Mobile Services.
  • Archivo push.js que contiene el script que debemos crear como job en el servicio de Mobile Services.

 

Para poder ejecutar el código debemos realizar los siguientes pasos:

1. Registrar la aplicación de Windows 8 en el store para la recepción de notificaciones.

  • Ve a la página Desarrollo de aplicaciones de la Tienda Windows del Centro de desarrollo de Windows e inicia sesión con tu cuenta Microsoft.
  • Una vez que hayas iniciado sesión, selecciona la pestaña Panel.
  • Selecciona Submit a new app.Ubicación de la opción de envío de una nueva aplicación

  • Selecciona Name para proporcionarle un nombre único a la aplicación. Ten en cuenta que no puedes continuar si no realizas este paso primero. Escribe el nombre y haz clic en el botón Reservar nombre

La página de envío de una aplicación

 

Cuando reservaste un nombre para la aplicación, la Tienda Windows creó las credenciales asociadas. También asignó valores de identidad que deben estar presentes en el archivo del manifiesto de la aplicación (package.appxmanifest): nombre y editor. Si ya has cargado la aplicación en la Tienda Windows, estos valores se habrán agregado automáticamente al manifiesto. Si no has cargado la aplicación, tendrás que agregar los valores de identidad al manifiesto manualmente.

  • Selecciona Advance features.

 

Ubicación de la opción de características avanzadas

 

  • En la página "Características avanzadas", selecciona Información sobre los servicios Live Connect y notificaciones de inserción, que se muestra aquí.

Ubicación de la opción de los servicios Live Connect y las notificaciones de inserción

 

  • En la página "Push Notifications and Live Connect services info", selecciona Indentify your app.

 

Ubicación de la opción de identificación de la aplicación

 

  • Sigue las instrucciones proporcionadas en la página “Identifying your app” para establecer los valores de identidad en el manifiesto de la aplicación, ya sea manualmente o mediante Microsoft Visual Studio Express 2012 for Windows 8.
  • Desde la página "Identifying your app", selecciona “Autenticating your service”

 

Ubicación de la opción de autenticación del servicio

 

  • Guarda los valores de SID y Client Secret. Estos valores serán necesarios para posteriormente configurarlos en el servicio de Mobile Services.

 

2. Si no tienes un Mobile Service que quieras utilizar para este ejemplo, crea uno nuevo en Windows Azure.

  • Ir a www.azure.com y autenticarse.
  • En la barra inferior seleccionar “+ Nuevo” => “Proceso” => “Servicio Mobil” => “Crear”

 

image

  • Especificar un nombre para el servicio y seleccionar o crear una base de datos.

 

image

3. Configura las credenciales obtenidas en el paso (1) en la cuenta de Mobile Services.

  • Entrar al Mobile Service recientemente creado ó el que queramos utilizar.
  • Ir la parte de “Insersión” ó “Push” configurar los valores obtenidos en el paso (1)

 

image

4. Configura la aplicación para que acceda al Mobile Service que desees.

  • Configurar la URL del servicio. Para esto podemos solamente cambiar el valor de {account-mobile-services} por el nombre que tenga nuestro servicio.
  • Obtener la clave de la aplicación de la opción “Administrar Claves” de la barra interior.

 

image

 

image

 

5. Ejecutar el script en la base de datos que utiliza el Mobile Services.

6. Crear un job que se ejecute en demanda con el código del archivo push.js