2012-04-17 37 views
1

鉴于这种URLAlfresco REST API:如何在网站中列出文件夹?

http://localhost:8080/alfresco/service/api/sites/test-3 

我回去:

{ 
    "url": "\/alfresco\/service\/api\/sites\/test-3", 
    "sitePreset": "site-dashboard", 
    "shortName": "test-3", 
    "title": "Test 3", 
    "description": "", 
    "node": "\/alfresco\/service\/api\/node\/workspace\/SpacesStore\/0352afea-797f-4b9e-be27-3bf37e54a2f1", 
    "tagScope": "\/alfresco\/service\/api\/tagscopes\/workspace\/SpacesStore\/0352afea-797f-4b9e-be27-3bf37e54a2f1", 
    "siteManagers": 
    [ 
     "admin" 
    ], 
    "isPublic": true, 
    "visibility": "PUBLIC" 
} 

如何我用的信息,以获得在该网站的文件夹列表?

回答

2

您需要使用不同的API。看看这个shell会话:

$ curl -u admin:admin -i -H "Accept: application/json" -H "Content-Type: application/json" -X POST -d "{'shortName':{'values':['test'], 'match':'foo'}}" http://localhost:8080/alfresco/service/api/sites/query 

{ 
    "url" : "\/alfresco\/service\/api\/sites\/test", 
    "sitePreset" : "wcmqs-site-dashboard", 
    "shortName" : "test", 
    "title" : "test", 
    "description" : "", 
     "node" : "\/alfresco\/service\/api\/node\/workspace\/SpacesStore\/e597e4c2-d307-46e3-ba4d-b911262e7261", 
     "tagScope" : "\/alfresco\/service\/api\/tagscopes\/workspace\/SpacesStore\/e597e4c2-d307-46e3-ba4d-b911262e7261", 
    "isPublic" : false, 
    "visibility" : "PRIVATE", 
    "siteManagers" : 
    [   
     "admin" 

    ] 
} 

// see the 'node' property up there 
$ curl -u admin:admin http://p01:8080/alfresco/service/api/node/workspace/SpacesStore/e597e4c2-d307-46e3-ba4d-b911262e7261/children 
[..cmis response here..] 
+0

不适合我,它不会返回任何东西 – Whimusical 2015-01-19 11:15:10

1

一个选项是使用CMIS。尽管取决于您确切的需求,但您也可以使用一些内置的web脚本来执行列表

在站点的根目录中,您有容器,如documentLibrary和wiki。您可以从container.get webscript获取站点的容器列表。有关详细信息,请参阅org/alfresco/slingshot/documentlibrary/container.get.desc.xml。如在该文件中,因为它的URL模式,是/弹弓/ doclib /集装箱/ {网站}

curl -u admin:admin http://localhost:8080/alfresco/service/slingshot/doclib/containers/test 
{ 
    "containers": 
    [ 
     { 
     "name": "documentLibrary", 
     "description": "Document Library", 
     "nodeRef": "workspace://SpacesStore/973338a0-db39-458e-a10d-396f00cb16a3", 
     "type": "cm:folder" 
     } 
    ] 
} 

接下来,当你知道你要使用的什么容器或文件夹的容器内treenode.get webscript可以让你列出,如

curl -u admin:admin http://localhost:8080/alfresco/service/slingshot/doclib/treenode/site/test/documentLibary 
{ 
    "totalResults": 0, 
    "resultsTrimmed": false, 
    "parent": 
    { 
     "nodeRef": "workspace://SpacesStore/92e4f8de-b919-4540-a27a-16c4e53a57bc", 
     "userAccess": 
     { 
      "create": true, 
      "edit": true, 
      "delete": true 
     } 
    }, 
    "items": 
    [ 
    ] 
} 

我也可以推荐您使用http://localhost:8080/alfresco/service/index查看什么webscripts存在于你的系统,并获得他们的信息,它帮助了很多类似的情况这

+0

我不明白。当我打电话给你的第二个服务时,items集合总是空的。但是当我查看站点时,我在http:// localhost:8080/share/page/site/test-3/documentlibrary中有一个文档和一个文件夹。 – 2012-04-18 21:32:59

+0

这是在复制/移动对话框时共享呼叫的web脚本。我建议你使用类似萤火虫的东西来查看你的案例中的共享呼叫,以及它返回的内容,并用它来发现你的稍有不同 – Gagravarr 2012-04-19 09:15:07

0

负载网站:http://localhost:8080/alfresco/service/api/sites/test-3

{ 
    "url": "\/alfresco\/service\/api\/sites\/test-3", 
    "sitePreset": "site-dashboard", 
    "shortName": "test-3", 
    "title": "test 3", 
    "description": "", 
    "node": "\/alfresco\/service\/api\/node\/workspace\/SpacesStore\/0352afea-797f-4b9e-be27-3bf37e54a2f1", 
    "tagScope": "\/alfresco\/service\/api\/tagscopes\/workspace\/SpacesStore\/0352afea-797f-4b9e-be27-3bf37e54a2f1", 
    "siteManagers": 
    [ 
      "admin" 
    ], 
    "isPublic": true, 
    "visibility": "PUBLIC" 
} 

获取使用从节点属性提取的ID的网站内容:http://localhost:8080/alfresco/service/api/node/workspace/SpacesStore/0352afea-797f-4b9e-be27-3bf37e54a2f1/children

里面是用的标题是“documentLibrary”的节点。利用其ID GUID,可以去捡些孩子

http://localhost:8080/alfresco/service/cmis/s/workspace:SpacesStore/i/b68db1eb-547d-4b2c-b5eb-ba207a275789/children

如果你有自定义属性,它们将出现在使用此API调用的子项。

使用子项目的ID,您可以获取其内容。

http://localhost:8080/alfresco/service/cmis/s/workspace:SpacesStore/i/2d53f464-bea0-46f3-aa0c-10b3302e661c/content

0

使用此URL来获得文件夹列表。

http://localhost:8080/alfresco/service/api/node/workspace:SpacesStore/store_id/b0697dd1-ae94-4bf6-81c8-5e2fa098ddfa/children