2012-07-29 87 views
3

我使用Freshdocs为Android如何通过REST的API

在露天创建文件夹

我可以使用此API调用登录到露天服务器:

GET /alfresco/service/api/login?u={username}&pw={password?} 

但我怎么创建一个新的文件夹Alfresco的?

+0

它有什么与Android呢?请删除标签。 – 2012-07-29 16:40:22

+0

嗨,我做了一个Android应用程序连接到Afresco – 2012-07-29 16:44:43

+0

这似乎并不重要,如果你只是想找出一些关于露天的休息api的东西。 – 2012-07-29 16:45:56

回答

3

有两个主要选项,但它取决于你想要做什么,以及你正在运行的Alfresco的版本。

假设你想让事情变得非常简单,并且你只想创建一个文件夹,并且你使用的是Alfresco 4.1或更高版本,那么你可以使用org.alfresco.repository.node.folder.post webscript。对于这一点,简单地张贴JSON喜欢的方式

{ "name": "NewNodeName" } 

{ 
    "name": "NewNodeName", 
    "title": "New Node Title", 
    "description": "A shiny new node", 
    "type": "cm:folder" 
} 

使用该API,如果你想要做一些不同的文件中这需要像/api/site/folder/{site}/{container}/{path}

或者一个URL,文件夹操作(例如浏览文件夹结构,创建文件夹,上传文件等),则应改为使用CMISApache Chemistry是一个用于CMIS的优秀库,它甚至还有一个Android客户端! Android客户端的文档仍然在被人们所想(Android端口只是刚刚添加),所以如果您没有时间等待文档,您可能需要询问mailing list

+0

我正在使用Freshdocs:https://github.com/freshdocs/cmsandroid。 Freshdocs使用什么样的api? – 2012-07-29 16:55:12

+0

这看起来也是一个CMIS客户端 – Gagravarr 2012-07-29 17:03:07

+0

但他们不使用任何库 – 2012-07-29 17:15:18

1

您应该使用 POST /alfresco/service/api/path/{store_type}/{store_id}/{id}/children

阅读详细信息的文档:

http://wiki.alfresco.com/wiki/Repository_RESTful_API_Reference#Create_folder_or_document_.28createDocument.2C_createFolder.29

+0

我以前看过这个API,但我不知道是什么:{store_type},{store_id},{id}​​ – 2012-07-29 16:52:11

+0

这是父节点的NodeRef的不同部分您要创建子节点的节点 – Gagravarr 2012-07-29 17:02:14

2

要创建通过API,你可以使用下面的查询文件夹:

一)要创建使用父文件夹的完整路径定义的类型文件夹

 url: "/../alfresco/service/api/site/folder/" + siteName + "/documentLibrary/" + parentFolderPath 
     method: "POST" 
     json: { 
      name: name 
      type: folderType 
     } 

siteName - 在Alfresco中创建的网站名称;

parentFolderPath - 父文件夹的路径;

name -folder name;

类型 - 文件夹类型。

实施例:

 url: "/../alfresco/service/api/site/folder/example/documentLibrary/books" 
     method: "POST" 
     json: { 
      name: "Pushkin" 
      type: "cm:folder" 
     } 

做出请求之后被创建 “普希金” 文件夹。该文件夹位于“示例”网站上文档库的“书籍”文件夹中。

b)通过nodeRef创建文件夹

nodeRef是在露天的对象ID。每个对象都有自己的nodeRef。此请求在文件夹类型的给定对象内创建新对象。

 xml = '<?xml version="1.0" encoding="utf-8"?>' + '<entry xmlns="http://www.w3.org/2005/Atom" 
    xmlns:cmisra="http://docs.oasis-open.org/ns/cmis/restatom/200908/" 
    xmlns:cmis="http://docs.oasis-open.org/ns/cmis/core/200908/">' + 
      '<title>' + folderName + '</title>' + 
      '<summary>' + folderName + '</summary>' + 
      '<cmisra:object>' + 
      '<cmis:properties>' + 
      '<cmis:propertyId 
    propertyDefinitionId="cmis:objectTypeId">' + 
      '<cmis:value>' + folderType + '</cmis:value>' + 
      '</cmis:propertyId>' + 
      '</cmis:properties>' + 
      '</cmisra:object>' + 
      '</entry>'; 
     url: "/../alfresco/service/api/node/workspace/SpacesStore/" + 
    nodeRef + "/children" 
     method: "POST" 
     headers: { 
      "Content-Type": "application/atom+xml;type=entry" 
     }, 
     xml: xml 

folderName - 文件夹名称;

folderType - 文件夹类型;

nodeRef - Alfresco中的文件夹ID。

例子:

 nodeRef = b544cd67-e839-4c60-a616-9605fa2affb7; 
     xml = '<?xml version="1.0" encoding="utf-8"?>' + 
      '<entry xmlns="http://www.w3.org/2005/Atom" 
    xmlns:cmisra="http://docs.oasis-open.org/ns/cmis/restatom/200908/" 
    xmlns:cmis="http://docs.oasis-open.org/ns/cmis/core/200908/">' + 
      '<title>Example of creating a folder</title>' + 
      '<summary>Example of creating a folder</summary>' + 
      '<cmisra:object>' + 
      '<cmis:properties>' + 
      '<cmis:propertyId propertyDefinitionId="cmis:objectTypeId">' + 
      '<cmis:value>cm:folder</cmis:value>' + 
      '</cmis:propertyId>' + 
      '</cmis:properties>' + 
      '</cmisra:object>' + 
      '</entry>'; 
     url: "/../alfresco/service/api/node/workspace/SpacesStore/" + nodeRef + "/children" 
     method: "POST" 
     headers: { 
      "Content-Type": "application/atom+xml;type=entry" 
     }, 
     xml: xml 

其他服务和他们的描述,你可以在这里找到:

http://jazzteam.org/en/technical-articles/list-of-alfresco-services/