Описание разделов (targets)
Обзор
Возвращает машиночитаемое описание разделов fs/targets, доступных учётной записи в текущем домене: их устройство, набор поддерживаемых операций и ограничения.
Эндпойнт предназначен для приложений, работающих с файловыми разделами. Он избавляет от необходимости держать в приложении собственную копию сведений о разделах: состав разделов различается по доменам и ролям и расширяется с развитием платформы, а описание всегда соответствует текущему состоянию сервера.
Обратите внимание на различие двух адресов:
| Эндпойнт | Что возвращает |
|---|---|
|
Перечень имён разделов. Общий механизм листинга регионов, см. Назначения (targets). |
|
Описание разделов. Настоящая статья. |
Различие — в завершающем слеше.
Запросы
| HTTP verb | Endpoint | Описание |
|---|---|---|
|
|
Получение описания разделов
Особенности
-
Состав списка фильтруется теми же правилами, что и перечень имён: учитываются ролевая политика и тип домена.
-
Часть разделов в описание не попадает, оставаясь в перечне имён и сохраняя доступ по своим маршрутам:
websocktemp— служебный, привязан к вебсокет-подключению сессии;alertcall— устаревший, сервис оповещений, использовавший его, более не применяется. -
Приложение, не получившее описания (ответ
404либо массив строк от сервера прежней версии), должно продолжать работать на собственных сведениях о разделах.
Ответ
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
{
"schema" : 1,
"version" : "1.11.0",
"domain" : "example.local",
"domain_type" : "master",
"limits" : {
"max_file_size" : 536870912,
"recursive_delete" : { "files" : 10000, "bytes" : 10737418240 }
},
"groups" : [
{ "id" : "sounds", "title" : "Sounds" },
{ "id" : "certs", "title" : "Certificates" },
{ "id" : "domain_files", "title" : "Domain files" },
{ "id" : "publish", "title" : "Publishing" },
{ "id" : "provisioning", "title" : "Auto-provisioning" },
{ "id" : "storage", "title" : "Storage roots" },
{ "id" : "system", "title" : "System" }
],
"targets" : [
{
"name" : "cacerts",
"url" : "/rest/v1/fs/targets/cacerts",
"title" : "Root certificates",
"summary" : "Additional root certificates used to verify external services",
"structure" : "tree",
"params" : [],
"methods" : {
"collection" : [ "GET", "POST", "METADATA", "CLEAR", "DOWNLOADZIP", "UPLOADZIP" ],
"item" : [ "GET", "HEAD", "POST", "PUT", "DELETE", "METADATA" ],
"directory" : [ "GET", "METADATA", "PUT", "DELETE", "CLEAR", "DOWNLOADZIP", "UPLOADZIP" ]
},
"writable" : true,
"max_file_size" : 536870912,
"doc" : "/docs/era/latest/api/rest/v1/fs/targets/cacerts.html",
"group" : null,
"storage" : null,
"macro" : null,
"public_url" : null,
"caution" : "normal",
"actions" : [
{ "id" : "reload",
"method" : "RELOAD",
"url" : "/rest/v1/master/logicalroles/all/cacerts",
"label_key" : "actions.cacerts.reload" }
]
},
{
"name" : "syncroot",
"root_suffix" : "common",
"url" : "/rest/v1/fs/targets/syncroot/common",
"title" : "Synchronization root",
"structure" : "tree",
"params" : [],
"methods" : { "collection" : [ "GET", "POST", "METADATA", "CLEAR", "DOWNLOADZIP", "UPLOADZIP" ],
"item" : [ "GET", "HEAD", "POST", "PUT", "DELETE", "METADATA" ],
"directory" : [ "GET", "METADATA", "PUT", "DELETE", "CLEAR", "DOWNLOADZIP", "UPLOADZIP" ] },
"writable" : true,
"doc" : "/docs/era/latest/api/rest/v1/fs/targets/syncroot_common.html"
},
{
"name" : "cpd_templates",
"url" : "/rest/v1/fs/targets/cpd_templates/{type}",
"title" : "CPD templates",
"structure" : "flat",
"params" : [
{ "name" : "type", "in" : "path", "required" : true, "values" : [ "ivr", "queue" ] }
],
"methods" : { "collection" : [ "GET", "POST", "METADATA" ],
"item" : [ "GET", "HEAD", "POST", "PUT", "DELETE", "METADATA" ] },
"writable" : true
}
]
}
Состав описания
Общие поля
| Поле | Тип | Описание |
|---|---|---|
|
|
Версия формата описания. Приложение, встретившее незнакомое значение, должно игнорировать описание целиком и работать на собственных сведениях. |
|
|
Версия платформы. |
|
|
Текущий домен и его тип ( |
|
|
Предельный размер тела запроса в байтах. |
|
|
Границы рекурсивных операций: число файлов и суммарный объём. См. Операции над каталогами. |
|
|
Каталог групп для отображения разделов в приложениях: Раздел ссылается на группу полем |
|
|
Описания разделов. |
Поля раздела
| Поле | Тип | Описание |
|---|---|---|
|
|
Имя раздела. Совпадает с именем из перечня |
|
|
Хвост корня у составных разделов. Присутствует у |
|
|
Полный путь коллекции, включая суффикс корня. |
|
|
Название раздела и краткое назначение на английском языке. Приложения отображают их как есть и не переводят. |
|
|
|
|
|
Параметры пути. У |
|
|
Фактически поддерживаемые методы, раздельно для коллекции ( Набор зависит от раздела и от текущего домена, см. Как формируются наборы методов. Ключ |
|
|
Разрешена ли запись в текущем домене. Раздел |
|
|
Предельный размер файла для этого раздела. |
|
|
Адрес статьи справки о разделе на этом же сервере. |
|
|
Категория хранения каталога. |
|
|
Префикс доступа к разделу из сценариев. |
|
|
Шаблон публичной ссылки для разделов с публикуемым содержимым. |
|
|
Действия, которые администратор может выполнить над разделом. Каждый элемент: Например, у Сервер эти действия никогда не вызывает сам. Поле описывает то, что приложение предлагает нажать пользователю: при загрузке нескольких файлов действие выполняется один раз, а не после каждого. У разделов без действий — пустой массив, а не |
|
|
Степень опасности операций над разделом:
|
Как формируются наборы методов
Поле methods описывает то, что сервер примет в текущем домене для этого раздела, а не то, что объявлено обработчиком вообще. Базовый набор сужается тремя независимыми правилами.
Маршрут элемента отсутствует в этом домене. Тогда item — пустой массив. Так устроен раздел product: в рабочем домене доступен только перечень архивов, чтобы выбрать версию при установке продуктового слоя, а обращаться к отдельному файлу нельзя. Пустой item означает «файловые операции здесь недоступны», а не «раздел пуст».
Запись в разделе недоступна в этом домене. Тогда из всех наборов исключаются пишущие методы — POST, PUT, DELETE, CLEAR, UPLOADZIP. Читающие остаются: скачать каталог архивом из раздела, доступного только для чтения, можно. Значение writable при этом равно false; оно отвечает на тот же вопрос коротко, а methods — точно.
Раздел одноуровневый. Тогда ключа directory в methods нет вовсе. Это отличается от пустого массива: пустой набор означал бы, что каталоги здесь есть, но операций над ними не предусмотрено, тогда как в одноуровневом разделе подкаталогов не бывает.
Правила независимы и могут действовать одновременно. У product в рабочем домене выполняются все три сразу.
Приложению не нужно сверять methods со structure или с writable: набор уже учитывает и то и другое.
Поля storage, macro, public_url и group могут иметь значение null: сведения задаются для каждого раздела отдельно и заполнены не у всех. Приложение должно корректно работать при отсутствии значения — не показывать соответствующее действие, а не подставлять собственное.
См. также
-
Назначения (targets) — перечень разделов и статьи по каждому из них.