En

JazzTeam Software Development Company

Agile Java Development

Список сервисов в Аlfresco

Alfresco - интегрированная система управления контентом для организаций. Alfresco объединяет в себе сервер и базу данных. Взаимодействие между клиентом и сервером осуществляется посредством REST-сервисов.

REST - архитектурный стиль веб-сервисов, выстроенный на существующих, хорошо известных и контролируемых консорциумом W3C стандартах, таких, как HTTP, URI, XML.

Список полезных REST- сервисов Alfresco, с полным описанием

Создать каталог определенного типа с использованием полного пути к родительскому каталогу

  1. url: "/../alfresco/service/api/site/folder/" + siteName +
  2. "/documentLibrary/" + parentFolderPath
  3. method: "POST"
  4. json: {
  5. name: name
  6. type: folderType
  7. }

siteName - имя сайта, созданного в Alfresco;
parentFolderPath - путь к родительскому каталогу;
name - имя каталога;
type - тип каталога.

Пример:

  1. url: "/../alfresco/service/api/site/folder/example/
  2. documentLibrary/books"
  3. method: "POST"
  4. json: {
  5. name: "Пушкин"
  6. type: "cm:folder"
  7. }

После выполнения запроса, создастся каталог Пушкин. Он находиться на сайте example, в библиотеке документов, в папке books.

Создать каталог по nodeRef

nodeRef - это id объекта в Alfresco. У каждого объекта есть свой nodeRef. Этот запрос создаст внутри указанного объекта folder типа, новый объект.

  1. xml = '<?xml version="1.0" encoding="utf-8"?>' +
  2. '<entry xmlns="http://www.w3.org/2005/Atom"
  3. xmlns:cmisra="http://docs.oasis-open.org/ns/cmis/restatom/200908/"
  4. xmlns:cmis="http://docs.oasis-open.org/ns/cmis/core/200908/">' +
  5. '<title>' + folderName + '</title>' +
  6. '<summary>' + folderName + '</summary>' +
  7. '<cmisra:object>' +
  8. '<cmis:properties>' +
  9. '<cmis:propertyId
  10. propertyDefinitionId="cmis:objectTypeId">' +
  11. '<cmis:value>' + folderType + '</cmis:value>' +
  12. '</cmis:propertyId>' +
  13. '</cmis:properties>' +
  14. '</cmisra:object>' +
  15. '</entry>';
  16. url: "/../alfresco/service/api/node/workspace/SpacesStore/" +
  17. nodeRef + "/children"
  18. method: "POST"
  19. headers: {
  20. "Content-Type": "application/atom+xml;type=entry"
  21. },
  22. xml: xml

folderName - имя каталога;
folderType - тип каталога;
nodeRef - id каталога в Alfresco.

Пример:

  1. nodeRef = b544cd67-e839-4c60-a616-9605fa2affb7;
  2. xml = '<?xml version="1.0" encoding="utf-8"?>' +
  3. '<entry xmlns="http://www.w3.org/2005/Atom"
  4. xmlns:cmisra="http://docs.oasis-open.org/ns/cmis/restatom/200908/"
  5. xmlns:cmis="http://docs.oasis-open.org/ns/cmis/core/200908/">' +
  6. '<title>Пример создания папки</title>' +
  7. '<summary>Пример создания папки</summary>' +
  8. '<cmisra:object>' +
  9. '<cmis:properties>' +
  10. '<cmis:propertyId
  11. propertyDefinitionId="cmis:objectTypeId">' +
  12. '<cmis:value>cm:folder</cmis:value>' +
  13. '</cmis:propertyId>' +
  14. '</cmis:properties>' +
  15. '</cmisra:object>' +
  16. '</entry>';
  17. url: "/../alfresco/service/api/node/workspace/SpacesStore/" +
  18. nodeRef + "/children"
  19. method: "POST"
  20. headers: {
  21. "Content-Type": "application/atom+xml;type=entry"
  22. },
  23. xml: xml

Внутри каталога, будет создана папка с именем “Пример создания папки”.

Получить информацию о сайте

  1. url: "/../alfresco/service/api/sites/" + siteName
  2. method: "GET"

siteName - имя сайта, созданного в Alfresco.
Возвращает данные в формате json.

Пример:

  1. url: "/../alfresco/service/api/sites/example"
  2. method: "GET"

Вернутся данные о сайте example (в формате json). Если такого сайта не существует, тогда будет возвращена ошибка 404 “Not found”, при этом придет json в котором тоже можно это увидеть.

Запрос на выборку, с возможностью в качестве параметра передать query-запрос

  1. url: "/../alfresco/s/cmis/query?q="
  2. method: "GET"

Пример:

  1. url: "/../alfresco/s/cmis/query?q=SELECT * FROM cmis:folder
  2. WHERE cmis:name='books'"
  3. method: "GET"

После выполнения, придет информация о каталоге с именем books.

Удалить каталог или документ по nodeRef

  1. url: "/../alfresco/service/api/node/workspace/SpacesStore/" +
  2. nodeRef + "/descendants?continueOnFailure=true"
  3. method: "DELETE"

nodeRef - id документа/каталога в Alfresco.

Получение информации об объекте, по его nodeRef

  1. url: "/../alfresco/service/api/node/workspace/SpacesStore/" +
  2. nodeRef
  3. method: "GET"

Возвращает данные в формате xml.

Получение информации о потомках объекта, по его nodeRef

  1. url: "/../alfresco/service/api/node/workspace/SpacesStore/" +
  2. nodeRef + "/children"
  3. method: "GET"

Возвращает данные в формате xml.

Обновить данные в объекте, по его nodeRef

  1. url: "/../alfresco/service/api/node/workspace/SpacesStore/" +
  2. nodeRef + "/formprocessor"
  3. method: "POST"
  4. json: jsonData

Пример:

  1. url: "/../alfresco/service/api/node/workspace/SpacesStore/
  2. 4bf1/formprocessor"
  3. json: {
  4. prop_cm_name: "Новое имя"
  5. prop_cm_title: "Новый заголовок"
  6. }

Заменит старое имя и заголовок в объекте, у которого nodeRef имеет значение 4bf1, на новые.

При необходимости можно пополнить список обновляемых полей путем добавления их в json в виде: prop_ имя поля.

Пример:

  1. json: {
  2. prop_minPrice: 1 250
  3. prop_maxPrice: 50 250
  4. }

Login

  1. url: "/../alfresco/service/api/login"
  2. method: "POST"
  3. json: {
  4. "username": username
  5. "password": password
  6. }

Возвращает ticket (идентификатор авторизации), при успешной авторизации. Время жизни у ticket 1 час. Если использовать такой подход, то этот ticket нужно добавлять в каждом запросе. Иначе будет запрашиваться basic http авторизация.

Примеры:

  1. url: "/../alfresco/s/cmis/query?q=SELECT *
  2. FROM cmis:folder&alf_ticket=" + ticket
  3. url: "/../alfresco/service/api/sites/example?alf_ticket="
  4. + ticket

Проверка на валидность ticket

  1. url: "/../alfresco/service/api/login/ticket/" + ticket
  2. method: "GET"

ticket - полученный при авторизации. Если ticket устарел, вернется ошибка, и будет запрошена basic http авторизация. Если ticket валидный, вернется текущий ticket.

Обнулить ticket. Logout

  1. url: "/../alfresco/service/api/login/ticket/" + ticket
  2. method: "DELETE"

Полезные ссылки:

, , , ,

Leave a Reply

Your email address will not be published. Required fields are marked *