Project

General

Profile

Actions

APIForNG » History » Revision 8

« Previous | Revision 8/27 (diff) | Next »
Alexey Khoroshilov, 02/03/2021 01:41 AM


APIForNG

По текущей модели предполагается использование следующих методов:
Для всех методов по умолчанию используется один заголовочный параметр
Authorization со значением Bearer 36AC0A0F7F271314B72986EB54DB2343

1.Получение списка проектов
Method:
GET
Path:
http://localhost:9988/projects
Без дополнительных параметров
Пример выдачи

{
  "success" : true,
  "result" : {
    "projects" : [ "Example", "з1", "arch", "stpo"],
    "count" : 7
  }
}

Без дополнительных параметров

2. Получение содержимого проекта(иерархия), для expandable - ограниченное 1м уровнем
Method:
GET
Path:
http://localhost:9988/projects/{arch}[/expandable]
Здесь {arch} - имя проекта, на данный момент регистрозависимо
Без дополнительных параметров
Пример выдачи {
"success": true,
"result": {
"name": "arch",
"nodes": [ {
"uuid": "243f4afe-1d28-4652-80b9-4ad123b415a4"
"name": "Documents",
"type": "DocFolder",

}, {
"uuid": "7a5374ee-eb7a-4731-997d-5f52f00ebc2e"
"name": "Requirements",
"type": "Requirement",
"haveChildren":"true",
"children": [ {
"uuid": "8ccd86e3-5689-43aa-9241-04728447e8f7",
"name": "001",
"type": "Requirement",
"children": [],
},
}, {
"uuid": "ff42a6f4-f9ac-48c3-b41c-c36395df8a85",
"name": "Reports",
"type": "ReportFolder"
}
],
}
}
по умолчанию выдает все дерево с базовым набором из нескольких полей - уникального id uuid, отображаемого имени name, типа type и массива потомков children.
поле haveChildren присутствует если у узла есть потомки и работает даже когда children не видны в режиме expandable для 2 уровня вложенности
при режиме [expandable] потомки выдаются до 1 уровня вложенности

3. Получение данных по поддереву
Method:
GET
Path:
http://localhost:9988/projects/{TEST}/hierarchy/ff42a6f4-f9ac-48c3-b41c-c36395df8a85[/expandable] {TEST} - имя проекта
id после /hierarchy это id узла для которого получается поддерево, режим /expandable работает аналогично проекту
Без дополнительных параметров
Пример выдачи {
"success": true,
"result": {
"uuid": "ff42a6f4-f9ac-48c3-b41c-c36395df8a85",
"name": "Reports",
"type": "ReportFolder",
"parent": "ff42a6f4-f9ac-48c3-b41c-c36395df8a85"
}
}
Содержимое result аналогично описанию одного узла и всех его потомков[или потомков 1 уровня вложенности для expandable] в выдаче проекта

4. Получение свойств узлов
Method:
POST
Path:
http://localhost:9988/projects/TEST/getattributes/
В теле запроса передаются все uuid ы узлов для которых нужно выдать свойства. Конкретная реализация пока уточняется, текущее предположение - просто передавать в текстовом виде с разделителем ;. Возможно будут передаваться в качестве массива по аналогии с передачей данных форм. Пример "4db0fbf4-f383-4740-9d72-891ef112f742;ff42a6f4-f9ac-48c3-b41c-c36395df8a85".
Пример выдачи {
"success": true,
"result": {
"attributes": {
"4db0fbf4-f383-4740-9d72-891ef112f742":{
"Вид": {
"value": "",
"type": "STRING"
},
"_index": {
"value": "1",
"type": "STRING"
},
"_name": {
"value": "Хронология",
"type": "STRING"
},
"_type": {
"value": "Requirement",
"type": "STRING"
},
"_id": {
"value": "001",
"type": "STRING"
},
"ForeignID": {
"value": "1",
"type": "STRING"
}
},
"9dffaddf-a55a-4fa1-a3bc-4a5fade4169f":{
"Вид": {
"value": "Заголовок",
"enumName": "Вид",
"valueType": "STRING",
"type": "ENUM"
},
"_index": {
"value": "1",
"type": "STRING"
},
"_tags": {
"value": [ {
"value": "section_Архитектура_ПО_Поток_управления"
}
],
"valuesType": "STRING",
"type": "LIST"
},
"_type": {
"value": "Requirement",
"type": "STRING"
},
"_id": {
"value": "Поток управления",
"type": "STRING"
},
"_description": {
"value": " ",
"type": "HTML"
},
"ForeignID": {
"value": "2",
"type": "STRING"
}
}
}
}
}

В примере выдача свойств двух узлов. Они расположены в result в виде словаря где ключ это id а значение - набор свойств узла.

5. Метод для работы с ресурсами. Текущая реализация
Method:
GET
Path:
http://localhost:9988/projects/{TEST}/nodes/{n}/resources/{resFolder}/{res} {Test} имя проекта {n} - uuid узла {resFolder} папка с ресурсами(внутри {node_id}_resources, например "images") {res} имя файла
Возвращает ответ типа APPLICATION_OCTET_STREAM включающий в себя содержимое нужного ресурса. В теле также передается имя файла.
Если ресурса нет то выдается ответ NOT_FOUND типа plain text
Если передано некорректное имя папки с ресурсами(включающее недопустимые символы) то выдается ответ INVALID FOLDER типа plain text

Предположительно появится метод получения ресурсов по списку для множества узлов но потом
Возможный формат передачи данных - json пары {"uuid":"resfolder/resname","uuid2":"resfolder2/resname2"}
Возможный тип возвращаемого значения - multipart/mixed. Но при этом размер возвращаемых данных может оказаться значительным

Updated by Alexey Khoroshilov 24 days ago · 8 revisions