En

JazzTeam Software Development Company

Agile Java Development

Список сервисов в А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"

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

, , , ,

Leave a Reply

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