Формулировка проблемы: необходимо реализовать API для получения описания формы.
Решение: необходимо реализовать метод API, позволяющий возвращать описание формы (мобильное представление формы).
URL метода:
rest/api/asforms/form/{formID}. Типа запроса:
GET.
ContentType: application/json; charset=utf-8.
Метод принимает следующие строковые параметры:
formID - ID формы (обяз.);
isMobile - признак наличия мобильного
представления у формы, true/false (не обяз.,
по умолчанию false).
Примечание:
если isMobile = false, форма будет возвращена
в обычном представлении;
если isMobile = true, форма будет возвращена
в мобильном представлении.
Альтернативные потоки событий
если формы с указанным formID не существует,
сервер должен возвращать {} (пустой массив);
если при isMobile = true у формы отсутствует
мобильное представление, сервер должен возвращать
{} (пустой массив).
Метод возвращает массив json со следующими
полями:
uuid
version
typeform - тип формы (0 -
обычное представление, 1 - мобильное
представление, 2 - печатное представление)
name
nameru
namekz
description
type
config
properties
data
datasources
pointers
collations
layout
Полный список значений перечисленных параметров представлен в архитектуре ARTA Synergy.
Пример возвращаемых массивов
{
"uuid": "fdf36124-43a3-4ed9-822b-e106107cd254",
"version": 1,
"typeform": "0",
"name": "мобильное представление",
"nameru": "мобильное представление",
"namekz": "мобильное представление",
"description": "мобильное представление",
"type": "form",
"config": {},
"properties": [
{
"id": "cmp-a3osx8",
"type": "textbox",
"config": {},
"style": {
"height": "20",
"align": "left",
"font": "Arial",
"fontsize": "12"
}
},
{
"id": "cmp-rfrnas",
"type": "textarea",
"style": {
"height": "60",
"align": "left",
"font": "Arial",
"fontsize": "12"
}
},
{
"id": "cmp-bdo0h4",
"type": "listbox",
"config": {},
"style": {
"height": "20",
"align": "left",
"font": "Arial",
"fontsize": "14"
}
},
{
"id": "cmp-3r4fmb",
"type": "listbox",
"config": {},
"style": {
"height": "20",
"align": "left",
"font": "Arial",
"fontsize": "14"
}
}
],
"data": [
{
"id": "cmp-bdo0h4",
"default": "1"
},
{
"id": "cmp-3r4fmb",
"default": "1"
}
],
"datasources": [
{
"type": "dict",
"dict": "City",
"key": "1",
"value": "2",
"id": "cmp-bdo0h4"
},
{
"type": "dict",
"dict": "transport",
"key": "value",
"value": "name",
"id": "cmp-3r4fmb"
}
],
"pointers": [],
"collations": [],
"layout": {
"totalPages": 1,
"pages": [
{
"page": 1,
"columns": 1,
"rows": 4,
"components": [
{
"id": "cmp-a3osx8",
"column": 0,
"row": 0
},
{
"id": "cmp-rfrnas",
"column": 0,
"row": 1
},
{
"id": "cmp-bdo0h4",
"column": 0,
"row": 2
},
{
"id": "cmp-3r4fmb",
"column": 0,
"row": 3
}
]
}
]
}
}