[News] : Windows Azure Mobile Service Api Script

Bonjour,

Hier, en travaillant sur les mobiles service, j’ai remarqué un nouvel onglet appelé API sur le portail :

image_thumb1

Nous allons voir d’un peu plus près ce que nous propose cet onglet.

Tout d’abord, nous devons créer une nouvelle api personnalisé, cela va créer un nouveau point d’appel sur notre service mobile.

image_thumb3

Création d’une nouvelle API

Lorsque vous créer une nouvelle api, vous devez renseigner les informations suivantes :

  • Le nom de l’api, ce qui va crée un nouveau point d’appel sur l’url : https://{namespace}.azure-mobile.net/api/{nameOfTheApi}
  • Les permissions sur les méthods HTTP. On retrouve les permissions de bases disponibles lorsque l’on travaille sur les tables. (Ie: Everyone, Application Key, Authenticated User, Admin & Script)

image_thumb5

Nous pouvons voir que nous avons une méthode de plus qui est disponible, c’est la méthode PUT.

Configurer l’Api

Une fois que vous avez créer votre API, vous avez accès à un script (oui un seul) qui contient l’ensemble de votre code. Point Négatif, ca fait un fichier de code plus gros, point positif : partage des functions entre les différentes méthodes.Actuellement, lorsque vous travailler sur votre méthode GET, si vous définissez une fonction, il faut la redéfinir dans votre Méthode POST si vous souhaiter utiliser la même. Conséquence, la maintenance est plus difficile.

Le script de base est composé du code suivant :

exports.post = function(request, response) {
// Use "request.service" to access features of your mobile service, e.g.:
//   var tables = request.service.tables;
//   var push = request.service.push;
response.send(200, "Hello World");
};

image_thumb7

Etendre l’api

Si vous voulez ajouter une méthode, vous avez juste à ajouter une fonction de type Exportable et qui utilise le mot clé de la méthode. Par exemple, si vous voulez ajouter la méthode GET, ajouter le code suivant :

exports.get = function(request, response){
response.send(200, "Hello World from Get Method");
}

Utilisation des capacités des Mobiles Services

Azure Mobile Service vous propose des facilités pour faire par exemple du CRUD sur les tables SQL ou bien de la notification PUSH, tout cela reste accessible dans les scripts d’API.  Ces helpers sont contenus dans l’objet Request. Vous avez donc accès aux objets :

  • tables en utilisant request.services.tables
  • push en utilisant using request.services.push

Il ne semble pas y avoir d’autre service pour l’instant.

J’en entend certains dire, ben oui mais et l’authentification ?

Vous avez accès à User à partir de l’objet Request directement :

  • user = request.user

et vous avez donc accès aux informations de base disponibles avec l’objet User des scripts Mobile Service.

Importer des scripts ou fonctions d’une autre api

C’est peut être une des meilleurs choses disponible, nous pouvons effectivement utiliser le mécanismes des exports de fonction pour les rendre disponible à d’autre API. En some, c’est un petit peut la fonctionnalité de “Script Partagé”.

Pour vérifier cela, nous allons créer une nouvelle fonction dans une autre api que nous allons appel testExternalFunction et nous ajoutons une fonction exportable :

exports.myfunction = function(){
return "hello World from my function";
};

Une fois cela fait, nous utilisons la fonction require() pour importer la fonction dans notre script.

exports.get = function(request, response){
//var scriptToImport = require("./{scriptToImport}");
//or var scriptToImport = require("../api/{scriptToImport}");
var scriptToImport = require("../api/testexternalfunction");
var result = scriptToImport .myfunction(); response.send(200, result);
}

Il reste quelques éléments qui ne semble pas disponible (comme query qui existe mais ne contient pas encore tout l’intelligence de l’object query des scripts de base, ou j’ai pas encore trouvé), mais cette nouvelle fonctionnalité est très intéressante pour la maintenabilité du code et des éventuellement des performances.

Enjoy Sourire

Advertisement
This entry was posted in Français, Microsoft, Windows Azure Platform and tagged , , , . Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s