Формулировка проблемы: для реализации нового модуля «Документы» в мобильном клиенте требуется реализовать API для работы с вложениями.
    Решение: необходимо реализовать четыре новых
    метода API, позволяющих:
  
добавлять вложения к документу;
удалять вложения из документа;
возвращать неполный список вложений;
возвращать полный список вложений.
Метод, позволяющий добавлять вложения к документу
Метод добавляет вложение к документу из временного файла, загруженного на сервер.
    URL метода:
    rest/api/docflow/doc/attachment/create. Типа
    запроса: POST.
  
Метод принимает следующие строковые параметры:
        documentID - UUID
        документа (обяз.);
      
        path - контейнер, в который необходимо
        добавить файл (не обяз.):
      
            ase:attachmentContainer - «Вложения», по
            умолчанию;
          
            ase:workContainer - «Прочие»;
          
        filePath - путь к временному файлу,
        загруженному на сервер (обяз.);
      
        Примечание: для загрузки файла во временное
        хранилище необходимо вызвать метод
        rest/api/storage/start_upload.
      
        fileName - название загружаемого файла
        (обяз.);
      
        locale - локаль пользователя,
        ru/en/kz (не обяз., по умолчанию
        ru).
      
В случае успешного выполнения метода сервер вернет сообщение «Файл добавлен».
Альтернативные потоки событий:
        если параметр documentID не передан, либо он
        пустой, сервер вернет сообщение «Не передан параметр
        documentID», вложения не добавятся;
      
        если передан некорректный параметр
        documentID, сервер вернет сообщение
        «Некорректный параметр documentID», вложения
        не добавятся;
      
        если параметр fileName не передан, либо он
        пустой, сервер вернет сообщение «Не передан параметр
        fileName», вложения не добавятся;
      
        если параметр filePath не передан, либо он
        пустой, сервер вернет сообщение «Не передан параметр
        filePath», вложения не добавятся;
      
в случае неуспешного выполнения метода сервер вернет сообщение «Ошибка добавления файла».
Метод, позволяющий удалять вложения из документа
    URL метода:
    rest/api/docflow/doc/attachment/remove. Типа
    запроса: GET.
  
Метод принимает следующие строковые параметры:
        fileUUID - UUID файла,
        который необходимо удалить (обяз.);
      
        locale - локаль пользователя,
        ru/en/kz (не обяз., по умолчанию
        ru).
      
В случае успешного выполнения метода сервер вернет сообщение «Файл удален».
Альтернативные потоки событий:
        если параметр fileUUID не передан, либо он
        пустой, сервер вернет сообщение «Не передан параметр
        fileUUID», вложения не удаляются;
      
        если передан некорректный параметр fileUUID,
        сервер вернет сообщение «Некорректный параметр
        fileUUID», вложения не удаляются;
      
в случае неуспешного выполнения метода сервер вернет сообщение «Ошибка удаления файла».
Метод, возвращающий неполный список вложений
Метод должен возвращать список последних добавленных вложений (из двух групп «Вложения» и «Прочие»), отсортированный в обратном порядке по дате добавления.
    URL метода:
    rest/api/docflow/doc/last_attachments. Типа
    запроса: GET.
  
Метод принимает следующие строковые параметры:
        documentID - UUID
        документа (обяз.);
      
        count - количество файлов, которые должны
        быть возвращены (не обяз., по умолчанию 3);
      
        getCounters - возвращать ли общее количество
        вложений документа (не обяз., true - да,
        false - нет, по умолчанию);
      
        locale - локаль пользователя,
        ru/en/kz (не обяз., по умолчанию
        ru).
      
Альтернативные потоки событий:
        если параметр documentID не передан, либо он
        пустой, сервер вернет сообщение «Не передан параметр
        documentID», список не возвращается;
      
        если передан некорректный параметр
        documentID, сервер вернет сообщение
        «Некорректный параметр documentID», список не
        возвращается.
      
    Метод возвращает json со следующими полями:
  
        uuid - UUID файла;
      
        name - название файла;
      
        is_editable - возможно ли изменять/удалять
        файл (true - да, false -
        нет);
      
        created_label - время создания файла для
        отображения в ARTA Synergy;
      
        created - время создания файла в формате
        yyyy-MM-dd HH:mm:ss;
      
        icon - URL изображения для
        предпросмотра (в случае его отсутствия - URL
        иконки типа файла).
      
Метод, возвращающий полный список вложений
Метод должен возвращать список всех вложений (из двух групп «Вложения» и «Прочие»), отсортированный в обратном порядке по дате добавления.
    URL метода:
    rest/api/docflow/doc/attachments. Типа запроса:
    GET.
  
Метод принимает следующие строковые параметры:
        documentID - UUID
        документа (обяз.);
      
        locale - локаль пользователя,
        ru/en/kz (не обяз., по умолчанию
        ru).
      
Альтернативные потоки событий:
        если параметр documentID не передан, либо он
        пустой, сервер вернет сообщение «Не передан параметр
        documentID», список не возвращается;
      
        если передан некорректный параметр
        documentID, сервер вернет сообщение
        «Некорректный параметр documentID», список не
        возвращается.
      
    Метод возвращает json с двумя массивами:
  
        attachments - «Вложения»;
      
        work_files - «Прочие».
      
Каждый массив описывается следующими полями:
        uuid - UUID файла;
      
        name - название файла;
      
        is_editable - возможно ли изменять/удалять
        файл (true - да, false -
        нет);
      
        created_label - время создания файла для
        отображения в ARTA Synergy;
      
        created - время создания файла в формате
        yyyy-MM-dd HH:mm:ss;
      
        icon - URL изображения для
        предпросмотра (в случае его отсутствия - URL
        иконки типа файла).
      
Альтернативные потоки событий:
        если параметр documentID не передан, либо он
        пустой, сервер вернет сообщение «Не передан параметр
        documentID», список не возвращается;
      
        если передан некорректный параметр
        documentID, сервер вернет сообщение
        «Некорректный параметр documentID», список не
        возвращается.
      
Пример возвращаемых массивов
Метод, возвращающий неполный список вложений:
если getCounters=true:
{
    "list": [
        {
            "uuid": "5db2c3c9-942e-4470-a0aa-3bfa63bad45e",
            "name": "jbpmdb.sql",
            "is_editable": "true",
            "created_label": "2014-12-29 15:38:44",
            "created": "2014-12-29 15:38:44",
            "icon": "rest/api/storage/icons/get?aiType=ai_text&fileName=jbpmdb.sql"
        },
        {
            "uuid": "a8d1a6a9-1b88-4c18-a536-18aaad3919e0",
            "name": "synergy.sql",
            "is_editable": "true",
            "created_label": "2014-12-29 15:38:44",
            "created": "2014-12-29 15:38:44",
            "icon": "rest/api/storage/icons/get?aiType=ai_text&fileName=synergy.sql"
        },
        {
            "uuid": "14de1194-8b06-4c8f-a6f5-30226a508d42",
            "name": "Тестовый шаблон Даты с активным редактированием.asfdocx",
            "is_editable": "true",
            "created_label": "2014-12-29 15:28:42",
            "created": "2014-12-29 15:28:42",
            "icon": "rest/api/storage/icons/get?aiType=ai_application&fileName=Тестовый шаблон Даты с активным редактированием.asfdocx"
        }
    ],
    "count": "3"
}
если getCounters=false:
[
    {
        "uuid": "5db2c3c9-942e-4470-a0aa-3bfa63bad45e",
        "name": "jbpmdb.sql",
        "is_editable": "true",
        "created_label": "2014-12-29 15:38:44",
        "created": "2014-12-29 15:38:44",
        "icon": "rest/api/storage/icons/get?aiType=ai_text&fileName=jbpmdb.sql"
    },
    {
        "uuid": "a8d1a6a9-1b88-4c18-a536-18aaad3919e0",
        "name": "synergy.sql",
        "is_editable": "true",
        "created_label": "2014-12-29 15:38:44",
        "created": "2014-12-29 15:38:44",
        "icon": "rest/api/storage/icons/get?aiType=ai_text&fileName=synergy.sql"
    },
    {
        "uuid": "14de1194-8b06-4c8f-a6f5-30226a508d42",
        "name": "Тестовый шаблон Даты с активным редактированием.asfdocx",
        "is_editable": "true",
        "created_label": "2014-12-29 15:28:42",
        "created": "2014-12-29 15:28:42",
        "icon": "rest/api/storage/icons/get?aiType=ai_application&fileName=Тестовый шаблон Даты с активным редактированием.asfdocx"
    }
]
Метод, возвращающий полный список вложений:
{
    "attachments": [
        {
            "uuid": "d55ae76a-f451-452d-93cb-3c6b28ba2335",
            "name": "Изображение.jpg",
            "is_editable": "true",
            "created_label": "15 минут назад",
            "created": "2013-06-26 09:12:54",
            "icon": "preview?identifier=d55ae76a-f451-452d-93cb-3c6b28ba2335"
        }
    ],
    "work_files": [
        {
            "uuid": "d55ae76a-f451-452d-93cb-3c6b28ba2332",
            "name": "Документ.doc",
            "is_editable": "true",
            "created_label": "15 минут назад",
            "created": "2013-06-26 09:12:54",
            "icon": "preview?identifier=d55ae76a-f451-452d-93cb-3c6b28ba2332"
        }
    ]
}