Project

General

Profile

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" 
     },