API » History » Revision 4
Revision 3 (Denis Kildishev, 04/22/2020 02:51 PM) → Revision 4/6 (Denis Kildishev, 04/22/2020 05:49 PM)
h1. API h2. Experimental h3. Test data ed612ae4-ced3-408c-8d64-66d87981611f — id of document 5b9946fe-585c-47f6-93bb-5bb2e37a04d3 — id of new location b7088d84-9c96-4657-abab-7690585ddd8e — id of requirement h3. Methods GET http://localhost:9988/projects/someproject/documents/ed612ae4-ced3-408c-8d64-66d87981611f get document and all locs PUT http://localhost:9988/projects/someproject/documents/ed612ae4-ced3-408c-8d64-66d87981611f/addlocation add location to doc with id before addloc GET http://localhost:9988/projects/someproject/documents/ed612ae4-ced3-408c-8d64-66d87981611f/locations list all locations GET http://localhost:9988/projects/someproject/documents/ed612ae4-ced3-408c-8d64-66d87981611f/contents get contents of document and all related resourses in form of multidata have fields *fileName* — name of xhtml file *resources* — list of related resources for example, "imgs/testDoc_html_2f94255ac1355d0d.jpg", "testDoc.xhtml", "imgs/testDoc_html_6a3c8113b28c3ae7.jpg" and several files. File with html content have name «html» DELETE http://localhost:9988/projects/someproject/documents/location/5b9946fe-585c-47f6-93bb-5bb2e37a04d3 removes location GET http://localhost:9988/projects/someproject/documents/location/5b9946fe-585c-47f6-93bb-5bb2e37a04d3 get location POST http://localhost:9988/projects/someproject/documents/location/5b9946fe-585c-47f6-93bb-5bb2e37a04d3/addfragment BODY { „start“:“0“, „end“:“20“ } adds fragment to location POST http://localhost:9988/projects/someproject/documents/location/5b9946fe-585c-47f6-93bb-5bb2e37a04d3/removefragment BODY { „start“:“0“, „end“:“20“ } removes fragment from location POST http://localhost:9988/projects/someproject/documents/location/5b9946fe-585c-47f6-93bb-5bb2e37a04d3/linkto/b7088d84-9c96-4657-abab-7690585ddd8e add link between requirement and location DELETE http://localhost:9988/projects/someproject/documents/location/5b9946fe-585c-47f6-93bb-5bb2e37a04d3/linkto/b7088d84-9c96-4657-abab-7690585ddd8e remove link between requirement and location GET http://localhost:9988/projects/someproject/resources/ed612ae4-ced3-408c-8d64-66d87981611f list all resources for node GET http://localhost:9988/projects/someproject/resources/ed612ae4-ced3-408c-8d64-66d87981611f/subpath.xhtml or http://localhost:9988/projects/someproject/resources/ed612ae4-ced3-408c-8d64-66d87981611f/images/1.jpg returns content of resource with given subpath h2. Old ru description Создание проекта Путь: http://localhost:9988/projects/{имя_проекта} Метод: PUT Headers: Authorization=Bearer 36AC0A0F7F271314B72986EB54DB2343 Удаление проекта Путь: http://localhost:9988/projects/{имя_проекта} Метод: DELETE Headers: Authorization=Bearer 36AC0A0F7F271314B72986EB54DB2343 Просмотр проекта, выдает полное дерево узлов и свойств Путь: http://localhost:9988/projects/{имя_проекта} Метод: GET Headers: Authorization=Bearer 36AC0A0F7F271314B72986EB54DB2343 Просмотр списка определений enum Путь: http://localhost:9988/projects/{имя_проекта}/enumDefs Метод: GET Headers: Authorization=Bearer 36AC0A0F7F271314B72986EB54DB2343 Добавление определений enum Путь: http://localhost:9988/projects/{имя_проекта}/enumDefs Метод: PUT Headers: Authorization=Bearer 36AC0A0F7F271314B72986EB54DB2343 Body: { "attributes":{ "3": { "value": [ { "value": "1" }, { "value": "2" }, { "comment"[optional]: "test", "value": "3" } ], "valuesType"[optional, STRING by def]: "STRING", "type": "ENUM_DEFINITION" } } } Переустановка определений enum(удаляет старые) Путь: http://localhost:9988/projects/{имя_проекта}/enumDefs Метод: POST остальное см. выше Получение узла со свойствами Путь: http://localhost:9988/projects/{имя_проекта}/node Метод: POST Body: Путь к узлу - qid, uvid или uuid Получение поддерева со свойствами Путь: http://localhost:9988/projects/{имя_проекта}/tree Метод: POST Body: Путь к узлу - qid, uvid или uuid Получение поддерева требований со свойствами (начиная с Requirements) Путь: http://localhost:9988/projects/{имя_проекта}/tree Метод: GET Получение поддерева с ограничением по глубине Путь: http://localhost:9988/projects/{имя_проекта}/tree-{глубина} Метод: POST Body: Путь к узлу - qid, uvid или uuid Установка свойств Путь: http://localhost:9988/projects/{имя_проекта}/nodes/{uuid_узла}/attributes/ Метод: PUT Headers: Content-Type=application/json Authorization=Bearer 36AC0A0F7F271314B72986EB54DB2343 Тип данных - multipart/form-data Body: два вида полей - input содержит json, images содержит изображения пример input = { "attributes": { "test": { "value": "13d23", "type": "INT" }, "_name": { "value": "{test} test 123" }, "Ref": { "type": "REFERENCE", "value":"test" } "2": { "value": [ { "value": "001 2/001" }, { "value": "002/001/001" }, { "value": "Requirements" } ], "valuesType": "REFERENCE", "type": "LIST" }, "3val": { "value": "1", "enumName": "3", "type": "ENUM" } } Удаление свойств Путь: http://localhost:9988/projects/{имя_проекта}/nodes/{uuid_узла}/attributes/ Метод: DELETE Headers: Authorization=Bearer 36AC0A0F7F271314B72986EB54DB2343 Body: //пример установки свойств {имя1}, {имя2}... Возвращает текущий набор свойств Удаление узла Путь: http://localhost:9988/projects/{имя_проекта}/node Метод: DELETE Body: Путь к узлу - qid, uvid или uuid Возвращает новое поддерево с предком выбранного узла после удаления Перемещение узла без автопереименования, вернет ошибку при совпадении id Путь: http://localhost:9988/projects/{имя_проекта}/nodes/{uuid_узла}/move Метод: POST Headers: Authorization=Bearer 36AC0A0F7F271314B72986EB54DB2343 Body: Путь к новому предку узла - qid, uvid или uuid Возвращает новое поддерево с предком выбранного узла после перемещения Перемещение узла с автопереименованием Путь: http://localhost:9988/projects/{имя_проекта}/nodes/{uuid_узла}/move-rename Метод: POST Headers: Authorization=Bearer 36AC0A0F7F271314B72986EB54DB2343 Body: Путь к новому предку узла - qid, uvid или uuid Возвращает новое поддерево с предком выбранного узла после перемещения Перемещение узла после указанного с автопереименованием Путь: http://localhost:9988/projects/{имя_проекта}/nodes/{uuid_узла}/move-after Метод: POST Headers: Authorization=Bearer 36AC0A0F7F271314B72986EB54DB2343 Body: Путь к узлу в место после которого должен переместиться {uuid_узла} - qid, uvid или uuid Возвращает новое поддерево с предком выбранного узла после перемещения Получение идентефикаторов Путь: http://localhost:9988/projects/{имя_проекта}/nodes/{uuid_узла}/id Метод: GET Headers: Authorization=Bearer 36AC0A0F7F271314B72986EB54DB2343 Возвращает id, qid, uvid Переименование узла Путь: http://localhost:9988/projects/{имя_проекта}/nodes/{uuid_узла}/id Метод: PUT Headers: Authorization=Bearer 36AC0A0F7F271314B72986EB54DB2343 Body: Новый id Возвращает новые id, qid, uvid Создание узла Путь: http://localhost:9988/projects/{имя_проекта}/create Метод: PUT Headers: Authorization=Bearer 36AC0A0F7F271314B72986EB54DB2343 Тип данных - multipart/form-data Body: два вида полей - input содержит json, images содержит изображения пример input = { "parent": "516bbbbc-babf-45d6-a146-61db334411be", "type":"Requirement", "id":"002", "attributes":{ "test": { "value": "13d23", "type": "INT" }, "_name": { "value": "{test} test 123" }, "Ref": { "type": "REFERENCE", "value":"test" }, "_description": { "value":"test desc <img src='strange.png' alt='strange.xcf'/>", "type":"HTML" } } } Идентефикатор("id") опционален Примеры выдачи: Список ссылок 2: { "valuesType": "REFERENCE", "value": [ { "nodes": [ "71f2c6d9-aa54-4293-95d4-ed0d50fba6c1" ], "value": "001 2/001" }, { "value": "*Missing: '002/001/001'" }, { "nodes": [ "516bbbbc-babf-45d6-a146-61db334411be" ], "value": "Requirements" } ], "type": "LIST" }, Ссылка с ошибкой 1: { "value": "*Missing: '002/001/001'", "type": "REFERENCE" }, enum def(GET http://localhost:9988/projects/{проект}/enumDefs) { "success": true, "result": { "attributes": { 3: { "value": [ { "comment": null, "value": "1" }, { "comment": null, "value": "2" }, { "comment": null, "value": "3" } ], "valuesType": "INT", "type": "ENUM_DEFINITION" } } } } Enum value, значение должно содержаться в enum def с именем enumName "3Value": { "type": "ENUM", "enumName": "3", "value": "1" },