REST - children by nodeRef ?

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

REST - children by nodeRef ?

Bonjour,

Je suis en train de développer un petit navigateur ajax pour parcourir les noeuds du repository Alfresco.
Je cherche à utiliser l'API REST pour récupérer les enfants d'un noeud et notamment la méthode GET '/api/node/{store_type}/{store_id}/{id}/children'. Cette fonction marche très bien sur le company home en faisant un GET sur 'http://127.0.0.1:8080/alfresco/s/api/path/workspace/SpacesStore/Company%20Home/children'.
J'ai des difficultés pour récupérer les enfants des autres noeuds. Par exemple, pour le répertoire 'Guest home', pour que l'appel REST fonctionne, il faudrait faire 'http://127.0.0.1:8080/alfresco/s/api/path/workspace/SpacesStore/Company%20Home/Guest%20home/children', hors je n'ai pas le chemin absolu de l'espace mais plutôt son nodeRef (par exemple 'a7c0152e-9747-44db-8914-2101d1eb4991'). Et en faisant un 'http://127.0.0.1:8080/alfresco/s/api/path/workspace/SpacesStore/a7c0152e-9747-44db-8914-2101d1eb4991...', je me retrouve toujours avec les enfants de l'espace "company home" …

Existe t'il une fonction retournant les enfants d'un noeud à partir de son nodeRef ? Ou faut-il développer un nouveau webscript ?

Autre bizarrerie, quand je visualise directement les propriétés d'un noeud (par exemple 'http://127.0.0.1:8080/alfresco/s/api/path/workspace/SpacesStore/a7c0152e-9747-44db-8914-2101d1eb4991'), il y a un champ link rel="children" qui correspondrait exactement à ce que je veux mais qui ne fonctionne pas ! Smiley Sad
Des idées sur ce bug ?

Merci d'avance pour vos réponses !


<?xml version="1.0" encoding="UTF-8"?>
<entry xmlns="http://www.w3.org/2005/Atom" xmlns:app="http://www.w3.org/2007/app" xmlns:cmis="http://docs.oasis-open.org/ns/cmis/core/200901" xmlns:alf="http://www.alfresco.org">
<author><name>System</name></author>
<content>a7c0152e-9747-44db-8914-2101d1eb4991</content>
<id>urn:uuid:a7c0152e-9747-44db-8914-2101d1eb4991</id>
<link rel="self" href="http://127.0.0.1:8080/alfresco/s/api/node/workspace/SpacesStore/a7c0152e-9747-44db-8914-2101d1eb4991...>
<link rel="edit" href="http://127.0.0.1:8080/alfresco/s/api/node/workspace/SpacesStore/a7c0152e-9747-44db-8914-2101d1eb4991...>
<link rel="allowableactions" href="http://127.0.0.1:8080/alfresco/s/api/node/workspace/SpacesStore/a7c0152e-9747-44db-8914-2101d1eb4991...>
<link rel="relationships" href="http://127.0.0.1:8080/alfresco/s/api/node/workspace/SpacesStore/a7c0152e-9747-44db-8914-2101d1eb4991...>
<link rel="children" href="http://127.0.0.1:8080/alfresco/s/api/node/workspace/SpacesStore/a7c0152e-9747-44db-8914-2101d1eb4991...>
<link rel="descendants" href="http://127.0.0.1:8080/alfresco/s/api/node/workspace/SpacesStore/a7c0152e-9747-44db-8914-2101d1eb4991...>
<link rel="type" href="http://127.0.0.1:8080/alfresco/s/api/type/folder'/>
<link rel="repository" href="http://127.0.0.1:8080/alfresco/s/api/repository'/>
<published>2009-09-22T14:23:12.366+02:00</published>
<summary>The company root space</summary>
<title>Company Home</title>
<updated>2009-09-22T14:23:12.445+02:00</updated>
<cmis:object>
<cmis:properties>
<cmis:propertyString cmis:name="BaseType"><cmis:value>folder</cmis:value></cmis:propertyString>
<cmis:propertyString cmis:name="Name"><cmis:value>Company Home</cmis:value></cmis:propertyString>
<cmis:propertyId cmis:name="ParentId"/>
<cmis:propertyDateTime cmis:name="LastModificationDate"><cmis:value>2009-09-22T14:23:12.445+02:00</cmis:value></cmis:propertyDateTime>
<cmis:propertyUri cmis:name="Uri"/>
<cmis:propertyId cmis:name="AllowedChildObjectTypeIds"/>
<cmis:propertyString cmis:name="CreatedBy"><cmis:value>System</cmis:value></cmis:propertyString>
<cmis:propertyDateTime cmis:name="CreationDate"><cmis:value>2009-09-22T14:23:12.366+02:00</cmis:value></cmis:propertyDateTime>
<cmis:propertyString cmis:name="ChangeToken"/>
<cmis:propertyString cmis:name="LastModifiedBy"><cmis:value>System</cmis:value></cmis:propertyString>
<cmis:propertyId cmis:name="ObjectTypeId"><cmis:value>folder</cmis:value></cmis:propertyId>
<cmis:propertyId cmis:name="ObjectId"><cmis:value>workspace://SpacesStore/a7c0152e-9747-44db-8914-2101d1eb4991</cmis:value></cmis:propertyId>
</cmis:properties>
</cmis:object>
<cmis:terminator/>
<app:edited>2009-09-22T14:23:12.445+02:00</app:edited>
<alf:icon>http://127.0.0.1:8080/alfresco/images/icons/space-icon-default-16.gif</alf:icon>
</entry>
2 Replies
cleseach
Active Member II

Re: REST - children by nodeRef ?

Bonjour,

Etes-vous bien sûr que le nodeRef 'a7c0152e-9747-44db-8914-2101d1eb4991' corresponde bien à l'espace 'Guest home' ?
D'après les résultats que vous nous indiquez, il me semble bien que cette référence soit celle du Company Home.

Cordialement,
Charles Le Seac'h
cytrix
Member II

Re: REST - children by nodeRef ?

Je viens de trouver, c'était en fait tout simple Smiley Happy :

Pour récupérer les enfants d'un noeud en utilisant son chemin absolu dans la GED, il faut utiliser la requête GET children mais avec PATH dans l'URL :
http://127.0.0.1:8080/alfresco/s/api/path/workspace/SpacesStore/Company%20Home/children

Pour récupérer les enfants d'un noeud en utilisant son uuid, il faut utiliser la requête GET children mais avec NODE dans l'URL :
http://127.0.0.1:8080/alfresco/s/api/node/workspace/SpacesStore/47d8fabd-d8d6-4121-abcc-5c3e5eb8fa8c...

Pour les résultats que j'ai indiqué hier soir, je pense effectivement m'être un peu embrouillé avec les id de node et les tickets d'authentification que je manipulais, toutes mes excuses Smiley Surprisedops: .