Alfresco met à disposition une API sous la forme de services web HTTP. Ceci permet d’interconnecter des entrepôts de documents avec d’autres applications.

Cet article présente rapidement comment les utiliser avec des exemples en java puis comment les étendre avec un exemple de web script Alfresco, de manière à ajouter de nouvelles fonctionnalités.

Utilisation des services web Alfresco

Authentification

Pour utiliser les différents services web Alfresco, il est nécessaire dans un premier temps de s’authentifier. L’authentification permet de récupérer un “ticket d’authentification” qui sera nécessaire pour effectuer les appels aux services web Alfresco.

Note : Un ticket d’authentification a une durée de vie limitée dans le temps. Lorsqu’il expire, il faudra procéder à une reconnexion. Un nouveau ticket sera alors généré.

Description du service web :

Exemple :

L’exemple ci-dessous illustre comment récupérer le ticket d’authentification depuis une application java.

# Téléversement de document

Par défaut, Alfresco met à disposition une API de téléversement de document.

Description du service web :

Exemple :

L’exemple ci-dessous illustre l’utilisation d’un web script de téléversement de document personnalisé lié à un contexte métier qui nécessite la saisie de métadonnées supplémentaires depuis une application java. Le web script est fourni un peu plus loin dans cet article.

Téléchargement

Un web service Alfresco permet de télécharger un document à partir du nodeRef du document (identifiant du document dans Alfresco).

Le nodeRef doit être connu par l’application consommatrice. Il peut être récupéré lors d’une synchronisation ou à la volée via une recherche (appel à un web service proposé en standard ou métier).

Description du service web :

  • URL : {url_alfresco}/alfresco/d/a/workspace/SpacesStore/{nodeId}/{filename}?ticket={ticket}
  • Méthode : GET
  • Paramètres :
    • nodeId : Identifiant interne alfresco du document
    • filename : Nom du document
    • ticket : Numéro du ticket récupéré à l’authentification

Exemple :

L’exemple ci-dessous illustre l’utilisation d’un web script de téléchargement d’un document depuis une application java.

Déconnexion

Un service web Alfresco permet d’invalider un ticket d’authentification.

Description du service web :

  • URL : {url_alfresco}/alfresco/service/api/login/ticket/{ticket}
  • Méthode : GET
  • Paramètre :
    • ticket : Numéro du ticket récupéré à l’authentification
  • Lien vers la documentation officielle

Exemple :

Créer un web script lié à un contexte spécifique

Alfresco offre également la possibilité de créer ses propres web services via la mise en place de web scripts Alfresco. Par exemple, il est possible de créer sa propre méthode d’upload avec métadonnées métiers via des web scripts Alfresco.

L’intérêt d’utiliser sa propre méthode est multiple :

  • Effectuer plusieurs contrôles de validation (Exemple : type de fichier, taille max)
  • Placer le fichier dans une arborescence définie à l’avance selon des règles bien spécifiques
  • Enrichir la description du document via des métadonnées propres à une contexte métier (Exemple : Nature du document, longitude, latitude, etc …)

Extrait du code source du web script mis en place coté Alfresco (document.post.js) :



Note :  Les exemples de cet article s’appuient sur des extraits de code d’une application java communicant avec une version 4.x d’Alfresco. D’une version à l’autre, les paramètres et noms des web services sont susceptibles d’évoluer.