Список сервисов в Аlfresco
Alfresco – интегрированная система управления контентом для организаций. Alfresco объединяет в себе сервер и базу данных. Взаимодействие между клиентом и сервером осуществляется посредством REST-сервисов.
REST – архитектурный стиль веб-сервисов, выстроенный на существующих, хорошо известных и контролируемых консорциумом W3C стандартах, таких, как HTTP, URI, XML.
Список полезных REST- сервисов Alfresco, с полным описанием
Создать каталог определенного типа с использованием полного пути к родительскому каталогу
url: "/../alfresco/service/api/site/folder/" + siteName +
"/documentLibrary/" + parentFolderPath
method: "POST"
json: {
name: name
type: folderType
}
siteName – имя сайта, созданного в Alfresco;
parentFolderPath – путь к родительскому каталогу;
name – имя каталога;
type – тип каталога.
Пример:
url: "/../alfresco/service/api/site/folder/example/
documentLibrary/books"
method: "POST"
json: {
name: "Пушкин"
type: "cm:folder"
}
После выполнения запроса, создастся каталог Пушкин. Он находиться на сайте example, в библиотеке документов, в папке books.
Создать каталог по nodeRef
nodeRef – это id объекта в Alfresco. У каждого объекта есть свой nodeRef. Этот запрос создаст внутри указанного объекта folder типа, новый объект.
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 – id каталога в Alfresco.
Пример:
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>Пример создания папки</title>' +
'<summary>Пример создания папки</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
Внутри каталога, будет создана папка с именем “Пример создания папки”.
Получить информацию о сайте
url: "/../alfresco/service/api/sites/" + siteName
method: "GET"
siteName – имя сайта, созданного в Alfresco.
Возвращает данные в формате json.
Пример:
url: "/../alfresco/service/api/sites/example"
method: "GET"
Вернутся данные о сайте example (в формате json). Если такого сайта не существует, тогда будет возвращена ошибка 404 “Not found”, при этом придет json в котором тоже можно это увидеть.
Запрос на выборку, с возможностью в качестве параметра передать query-запрос
url: "/../alfresco/s/cmis/query?q="
method: "GET"
Пример:
url: "/../alfresco/s/cmis/query?q=SELECT * FROM cmis:folder
WHERE cmis:name='books'"
method: "GET"
После выполнения, придет информация о каталоге с именем books.
Удалить каталог или документ по nodeRef
url: "/../alfresco/service/api/node/workspace/SpacesStore/" +
nodeRef + "/descendants?continueOnFailure=true"
method: "DELETE"
nodeRef – id документа/каталога в Alfresco.
Получение информации об объекте, по его nodeRef
url: "/../alfresco/service/api/node/workspace/SpacesStore/" +
nodeRef
method: "GET"
Возвращает данные в формате xml.
Получение информации о потомках объекта, по его nodeRef
url: "/../alfresco/service/api/node/workspace/SpacesStore/" +
nodeRef + "/children"
method: "GET"
Возвращает данные в формате xml.
Обновить данные в объекте, по его nodeRef
url: "/../alfresco/service/api/node/workspace/SpacesStore/" +
nodeRef + "/formprocessor"
method: "POST"
json: jsonData
Пример:
url: "/../alfresco/service/api/node/workspace/SpacesStore/
4bf1/formprocessor"
json: {
prop_cm_name: "Новое имя"
prop_cm_title: "Новый заголовок"
}
Заменит старое имя и заголовок в объекте, у которого nodeRef имеет значение 4bf1, на новые.
При необходимости можно пополнить список обновляемых полей путем добавления их в json в виде: prop_ имя поля.
Пример:
json: {
prop_minPrice: 1 250
prop_maxPrice: 50 250
}
Login
url: "/../alfresco/service/api/login"
method: "POST"
json: {
"username": username
"password": password
}
Возвращает ticket (идентификатор авторизации), при успешной авторизации. Время жизни у ticket 1 час. Если использовать такой подход, то этот ticket нужно добавлять в каждом запросе. Иначе будет запрашиваться basic http авторизация.
Примеры:
url: "/../alfresco/s/cmis/query?q=SELECT *
FROM cmis:folder&alf_ticket=" + ticket
url: "/../alfresco/service/api/sites/example?alf_ticket="
+ ticket
Проверка на валидность ticket
url: "/../alfresco/service/api/login/ticket/" + ticket
method: "GET"
ticket – полученный при авторизации. Если ticket устарел, вернется ошибка, и будет запрошена basic http авторизация. Если ticket валидный, вернется текущий ticket.
Обнулить ticket. Logout
url: "/../alfresco/service/api/login/ticket/" + ticket
method: "DELETE"
Полезные ссылки:
- Официальная документация RESTful API
- Alfresco wiki
- Семейство cmis запросов
Вышла новая версия 1.24 продукта XML2Selenium Расширение ECM Alfresco