Skip to content

Predict API

Georgy Perevozchikov edited this page Oct 7, 2020 · 5 revisions

Обзор модуля

Identity API - представляет собой сервис реализующий следующий функционал:

  • Регистрацию пользователей в системе
  • Аутентификацию пользователей в системе
  • Авторизацию пользователей в системе
  • Управление пользователями

Описание API

REST API

prefix: /api/vX.Y.Z (X.Y.Z >= 0.1.0)

  • GET /ping

    • response
    {
        "pong": "API version X.Y.Z"
    }
  • POST /predict/on_image

    • request
      • headers: X-Project-Id
      • body: binary file
    • response
    {
      	"job": "id"
    }
  • POST /predict/on_s3

    • request
    {
        "project": "id",
        "files": [
            "file-uuid-1",
            "file-uuid-2"
        ]
    }
    • response
    {
      	"jobs": [
            "job-id-1",
            "job-id-2"
        ]
    }
  • GET /predict/{id}

    • response
    {
    	"status": "finised",
        "objects": [
            {
                "xmin": 11,
                "xmax": 22,
                "ymin": 33,
                "ymax": 44,
                "label": "class1"
            }
        ]
    }
  • GET /projects?page=0&count=50

    {
    	"max_page": 0,
    	"projects": [
    		"project-uuid-1",
    		"project-uuid-2",
    		....
    		"projectr-uuni-N"
    	]
    }
  • POST /project

    • request
    {
        "users": [
            "user-uuid-1",
            "user-uuid-2"
        ],
        "description": "Поиск Калининград 2020"
    }
    • response
    {
        "id": "3745576a-06f4-11eb-9d06-10e7c6e703cb",
        "status": "project created"
    }
  • GET /project/{id}

    • response
    {
        "users": [
            "user-uuid-1",
            "user-uuid-2"
        ],
        "description": "Поиск Калининград 2020",
        "date": "01.01.2020",
        "filts": [
            "3745576a-06f4-11eb-9d06-10e7c6e703cx",
            "3745576a-06f4-11eb-9d06-10e7c6e703cy",
            "3745576a-06f4-11eb-9d06-10e7c6e703cz",
            "3745576a-06f4-11eb-9d06-10e7c6e703ci"
        ],
        "tasks": {
            "active": [
            	"3745576a-06f4-11eb-9d06-10e7c6e703cx",
            	"3745576a-06f4-11eb-9d06-10e7c6e703cy"
        	],
            "finished": [
                "3745576a-06f4-11eb-9d06-10e7c6e703ci"
            ],
            "failed": []
        }
    }
  • PUT /project/{id}

    • request
    {
        "users": [
            "user-uuid-1",
            "user-uuid-2",
            "user-uuid-3"
        ],
        "description": "Поиск Москва 2020"
    }
    • response
    {
        "status": "project updated"
    }
  • DELETE /project/{id}

    • response
    { 
        "status": "project removed"
    }

FTP API

  • FTP хранилище имеет следующую структуру:

    - /root:
    	- read-me.txt
    	- /project-id-1:
    		- file1.jpg
    		- file2.jpg
    		- file3.jpg
    		- /result:
    			- /in-progress:
    				- file4.jpg
    				- file5.jpg
    				- file6.jpg
    			- /finished:
    				- /class1:
    					- file7.jpg
    					- file7.xml
    					- file7.drow.jpg
    				- /class2:
    					- file8.jpg
    					- file8.xml
    					- file8.drow.jpg
    				- /empty:
    					- file9.jpg
    			- /failed:
    				- file10.jpg
    				- file10.error.txt
    		- /description:
    			- description.txt
    	- /project-id-2:
    	...
    	- /project-in-N:
    
  • Процесс работы с FTP API:

    1. Пользователь заходит на FTP под своей учетной записью (совпадает с учетной записью Lacmus web-api).
    2. Пользователь видит ID доступных ему проектов, выбирает нужный проект.
    3. Пользователь имеет write-only доступ к кроневой папке проекта и read-only - ко всем подпапкам (description, result)
    4. В процессе работы файлы перемещаются по внутренним папкам в каталоге result соответственно их состоянию. При этом из коневого каталога обработанные файлы удаляются (?).
    5. Пользователь переходит в папку result и забирает результаты

S3 API (for application)

  • приложение может залить файлы напрямую в S3 хранилище в корзину с проектом, получить их ID и запустить процесс обработки используя REST API.
  • home
  • identity-api
  • predict-api
Clone this wiki locally