Utilisation des API d'interoperabilité avec Alfresco

cancel
Showing results for 
Search instead for 
Did you mean: 
ombinte
Member II

Utilisation des API d'interoperabilité avec Alfresco

Jump to solution

Bonjour,

Je suis en train de développer une application s’interfaçant avec une GED Alfresco community 4.2. J'ai lu dans la documentation qu'il existait deux API REST : 

  • REST API
  • CMIS REST API

J'ai besoin pour mon application de :

  • Lister l'ensemble des répertoires (root) d'un utilisateurs
  • Lister les éléments d'un répertoire
  • Récupérer un fichier
  • Partager un document (dossier, fichier etc...)
  • Accéder à l'historique d'un fichier
  • Créer et supprimer un utilisateur

Au début j'ai essayé d'utiliser l'API Chemistery d'Apache en suivant un exemple que j'ai trouvé sur le net et je liste le contenu de mon utilisateur 

[Folder] workspace://SpacesStore/624914c7-3ca2-4937-a612-96f1df928cc1 - Dictionnaire de données
[Folder] workspace://SpacesStore/846c69d4-4ec2-44c8-972d-f975d9b98d41 - Modèles d'espace
[Folder] workspace://SpacesStore/09fe45df-9cba-4843-a1cb-944807e44267 - Projet de conception logicielle
[Folder] workspace://SpacesStore/8126f780-70c4-446a-8288-fe5ce3b012bb - Présentations
[Folder] workspace://SpacesStore/f4848cc9-5b65-4639-b318-8bc92ab9b726 - Documentation
[Folder] workspace://SpacesStore/00f0541d-4b64-4fff-b67f-a26e1389c7d5 - Approbation en attente
[Folder] workspace://SpacesStore/fa16e03e-d848-432f-af05-fa468f895f5b - Brouillons
[Folder] workspace://SpacesStore/2dda75e8-a947-4fe2-87b2-75b821dbfd56 - Publié
[Folder] workspace://SpacesStore/f9e2fa03-a8d2-413a-a8d9-5cfc60980134 - Exemples
[Docment] workspace://SpacesStore/7cb2416e-00b1-4347-bcc9-87f6c80ca944;1.0 - system-overview.html

.....

[Folder] workspace://SpacesStore/ab5cab42-2b47-4042-a8f5-57bb06007cc3 - Espaces Utilisateurs
[Folder] workspace://SpacesStore/86f1c760-905e-4920-98a8-a6bdd10aa732 - ombinte
[Folder] workspace://SpacesStore/2dbc6156-fdfa-4ddc-9187-481992570369 - MonProjet
[Folder] workspace://SpacesStore/fb3bb96f-3eb0-40a5-a890-3d06d6e781cf - Carnet 200
[Folder] workspace://SpacesStore/b9acaf70-d5d5-4dba-a354-bae63ba96072 - Carnet 100
[Docment] workspace://SpacesStore/9c3c6e63-e217-47a8-8216-298d2419cffa;1.0 - justificatif.pdf

Finalement n'ayant que très peu d'experience sur ce sujet je me suis dit qu'il serait plus judicieux d'utiliser l'API REST fournit par Alfresco pour faire du CMIS. Hélas celle-ci est très peu documenté, j'ai réussi à effectuer quelques appels REST http://localhost:8080/alfresco/api/-default-/public/cmis/versions/1.1/atom/children?id=86f1c760-905e...a mais j'ai du mal à saisir le flux XML de retour. 

Ma question est : 

  • Quel est la meilleurs utilisation ? CMIS REST Api ? Client CMIS ?
  • Ou se trouve la définition simple et claire des API REST qui font du CRUD dans le repo GED ?
  • Comment accéder simplement au node Espaces Utilisateurs

Je suis preneur pour tout exemple

Merci d'avance

1 Solution

Accepted Solutions
ycoulon
Alfresco Employee

Re: Utilisation des API d'interoperabilité avec Alfresco

Jump to solution

Bonjour,

CMIS (Content Management Interoperability Services) est un standard ouvert géré par OASIS. Son but est d'augmenter l'interopérabilité entre les systèmes de gestion de contenu.

Source : CMIS — Wikipédia 

Il existe des clients CMIS pour de nombreux langages ce qui vous évitera des noeuds au cerveau : CMIS — Wikipédia 

Quand je lis votre question, je m'interroge sur le besoin de créer une nouvelle application pour cela.

L'interface Share d'Alfresco permet d'effectuer ces opérations (et bien plus encore).

Sinon pour reprendre vos besoins :

  • Lister l'ensemble des répertoires (root) d'un utilisateurs => CMIS
  • Lister les éléments d'un répertoire => CMIS
  • Récupérer un fichier => CMIS
  • Partager un document (dossier, fichier etc...) => API Rest d'Alfresco, CMIS ne supporte pas à ma connaissance cette notion de partage.
  • Accéder à l'historique d'un fichier => API Rest voir remarque de dessus.
  • Créer et supprimer un utilisateur => API Rest

Au passage, il serait je pense intéressant d'effectuer une migration vers la dernière version d'Alfresco afin de bénéficier des dernières nouveautés.

Cela vous permettra également d'utiliser https://community.alfresco.com/community/ecm/blog/2016/11/17/alfresco-java-client-sdk qui vous fera certainement économiser du temps.

Yann

View solution in original post

6 Replies
archi_37
Active Member II

Re: Utilisation des API d'interoperabilité avec Alfresco

Jump to solution

Bonjour,

Moi avec PHP j'utilise du REST API classique, avec un appel à CURL et un retour des données au format JSON.

Exemple du lien que j'utilisais, car avec la version 5.2 une nouvelle version REST API est apparue.

# URL qui sera utilisé par défault pour lister les docs...etc
$url_for_sites = 'http://127.0.0.1:8080/alfresco/api/-default-/public/alfresco/versions/1/sites/';
# liste les users - Meme URL que ci-dessus mais :
# sera ajouté automatiquement le site + "/members" à la fin

Avec cette commande on voit bien ce qui se passe :

curl --insecure -uadmin:motdepasse https://192.168.1.250/alfresco/api/-default-/public/cmis/versions/1.1/browser/root

Mon site de reference ((.2 !) : Swagger UI 

Cordialement

ycoulon
Alfresco Employee

Re: Utilisation des API d'interoperabilité avec Alfresco

Jump to solution

Bonjour,

CMIS (Content Management Interoperability Services) est un standard ouvert géré par OASIS. Son but est d'augmenter l'interopérabilité entre les systèmes de gestion de contenu.

Source : CMIS — Wikipédia 

Il existe des clients CMIS pour de nombreux langages ce qui vous évitera des noeuds au cerveau : CMIS — Wikipédia 

Quand je lis votre question, je m'interroge sur le besoin de créer une nouvelle application pour cela.

L'interface Share d'Alfresco permet d'effectuer ces opérations (et bien plus encore).

Sinon pour reprendre vos besoins :

  • Lister l'ensemble des répertoires (root) d'un utilisateurs => CMIS
  • Lister les éléments d'un répertoire => CMIS
  • Récupérer un fichier => CMIS
  • Partager un document (dossier, fichier etc...) => API Rest d'Alfresco, CMIS ne supporte pas à ma connaissance cette notion de partage.
  • Accéder à l'historique d'un fichier => API Rest voir remarque de dessus.
  • Créer et supprimer un utilisateur => API Rest

Au passage, il serait je pense intéressant d'effectuer une migration vers la dernière version d'Alfresco afin de bénéficier des dernières nouveautés.

Cela vous permettra également d'utiliser https://community.alfresco.com/community/ecm/blog/2016/11/17/alfresco-java-client-sdk qui vous fera certainement économiser du temps.

Yann

ombinte
Member II

Re: Utilisation des API d'interoperabilité avec Alfresco

Jump to solution

Merci pour tes réponses, je vais m'inspirer de ce que tu me propose la.

ombinte
Member II

Re: Utilisation des API d'interoperabilité avec Alfresco

Jump to solution

Yann,

Je n'arrive pas à télécharger le jar alfresco-java-client. J'utilise le repo suivant : 

<repositories>
<repository>
<id>google-releases</id>
<name>Google Releases</name>
<url>https://oss.sonatype.org/content/repositories/google-releases</url>
</repository>
<repository>
<id>artifacts.alfresco.com</id>
<name>Alfresco Maven Repository</name>
<url>https://artifacts.alfresco.com/nexus/content/groups/public/</url>
</repository>
<repository>
<id>repository.apache.org</id>
<name>Apache Maven Repository</name>
<url>https://repository.apache.org/content/groups/public/</url>
</repository>
</repositories>

Je ne le trouve pa

ycoulon
Alfresco Employee

Re: Utilisation des API d'interoperabilité avec Alfresco

Jump to solution

Bonjour,

Il semble que le client ne soit pas encore dispo sur maven.

Vous pouvez néanmoins le builder depuis les sources : GitHub - Alfresco/alfresco-client-sdk: Alfresco Java Client SDK 

Yann

sebibi44
Member II

Re: Utilisation des API d'interoperabilité avec Alfresco

Jump to solution

Bonjour Ousmane, aurais tu avancé dans ton projet d'utilisation d'APIs ? 

je suis intéressé par un projet similaire de démonstrateur web utilisant les APIs avec le protocole REST mais j'ai du mal à le réaliser ! 

bien cordialement, Sébastien