Создание спецификации для сервиса UTZ
This commit is contained in:
218
openapi.yml
Normal file
218
openapi.yml
Normal file
@@ -0,0 +1,218 @@
|
|||||||
|
openapi: 3.0.3
|
||||||
|
info:
|
||||||
|
title: UTZ Service API
|
||||||
|
description: API для создания и контроля УТЗ.
|
||||||
|
version: 1.0.0
|
||||||
|
servers:
|
||||||
|
- url: http://localhost:8080
|
||||||
|
description: Local development server
|
||||||
|
paths:
|
||||||
|
/create:
|
||||||
|
post:
|
||||||
|
summary: Создать новую УТЗ
|
||||||
|
description: Создается новая УТЗ.
|
||||||
|
operationId: createUTZ
|
||||||
|
requestBody:
|
||||||
|
required: true
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: "#/components/schemas/UTZCreateRequest"
|
||||||
|
responses:
|
||||||
|
"201":
|
||||||
|
description: UTZ успешно создана
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: "#/components/schemas/UTZCreateResponse"
|
||||||
|
"401":
|
||||||
|
description: Ошибка аутентификации
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
error:
|
||||||
|
type: string
|
||||||
|
example: "Ошибка аутентификации"
|
||||||
|
"500":
|
||||||
|
description: Ошибка сервера
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
error:
|
||||||
|
type: string
|
||||||
|
example: "Внутренняя ошибка сервера"
|
||||||
|
components:
|
||||||
|
schemas:
|
||||||
|
UTZCreateRequest:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
description: Название UTZ
|
||||||
|
example: "Моя первая UTZ"
|
||||||
|
description:
|
||||||
|
type: string
|
||||||
|
description: Описание UTZ
|
||||||
|
example: "//TODO Добавить описание"
|
||||||
|
limits:
|
||||||
|
type: array
|
||||||
|
description: Список общих ограничений UTZ
|
||||||
|
items:
|
||||||
|
$ref: "#/components/schemas/Limit"
|
||||||
|
stages:
|
||||||
|
type: array
|
||||||
|
description: Список этапов UTZ
|
||||||
|
items:
|
||||||
|
$ref: "#/components/schemas/Stage"
|
||||||
|
|
||||||
|
required:
|
||||||
|
- name
|
||||||
|
- description
|
||||||
|
- limits
|
||||||
|
- stages
|
||||||
|
|
||||||
|
UTZCreateResponse:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
id:
|
||||||
|
type: string
|
||||||
|
description: Уникальный идентификатор созданной UTZ
|
||||||
|
Limit:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
type:
|
||||||
|
type: string
|
||||||
|
enum:
|
||||||
|
- SCHEME_VALUE_CONSTRAINT
|
||||||
|
- USER_ACTION_CONSTRAINT
|
||||||
|
description: Тип ограничения
|
||||||
|
contraint_object_id:
|
||||||
|
type: string
|
||||||
|
description: Идентификатор объекта ограничения
|
||||||
|
constraints:
|
||||||
|
type: array
|
||||||
|
description: Список ограничений
|
||||||
|
items:
|
||||||
|
$ref: "#/components/schemas/Constraint"
|
||||||
|
isCritical:
|
||||||
|
type: boolean
|
||||||
|
description: Флаг критичности ограничения, если true, нарушение ограничения приведет к остановке УТЗ
|
||||||
|
isReached:
|
||||||
|
type: boolean
|
||||||
|
description: Флаг достижения ограничения, если true, ограничение было достигнуто
|
||||||
|
Constraint:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
key:
|
||||||
|
type: string
|
||||||
|
description: Ключ ограничения
|
||||||
|
enum:
|
||||||
|
- ">"
|
||||||
|
- "<"
|
||||||
|
- "="
|
||||||
|
- "!="
|
||||||
|
value:
|
||||||
|
type: string
|
||||||
|
description: Значение ограничения
|
||||||
|
Stage:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
description: Название этапа
|
||||||
|
description:
|
||||||
|
type: string
|
||||||
|
description: Описание этапа
|
||||||
|
limits:
|
||||||
|
type: array
|
||||||
|
description: Список ограничений этапа
|
||||||
|
items:
|
||||||
|
$ref: "#/components/schemas/Limit"
|
||||||
|
actionGroups:
|
||||||
|
type: array
|
||||||
|
description: Список групп действий этапа
|
||||||
|
items:
|
||||||
|
$ref: "#/components/schemas/ActionGroup"
|
||||||
|
completionCondition:
|
||||||
|
$ref: "#/components/schemas/CompletionCondition"
|
||||||
|
required:
|
||||||
|
- name
|
||||||
|
- description
|
||||||
|
- limits
|
||||||
|
- actionGroups
|
||||||
|
ActionGroup:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
actionType:
|
||||||
|
type: string
|
||||||
|
enum:
|
||||||
|
- USER_ACTION_GROUP
|
||||||
|
- SYSTEM_ACTION_GROUP
|
||||||
|
description: Тип группы действий
|
||||||
|
actions:
|
||||||
|
type: array
|
||||||
|
description: Список действий в группе
|
||||||
|
items:
|
||||||
|
$ref: "#/components/schemas/Action"
|
||||||
|
isRequired:
|
||||||
|
type: boolean
|
||||||
|
description: Флаг обязательности выполнения группы действий для завершения этапа
|
||||||
|
isRandomOrder:
|
||||||
|
type: boolean
|
||||||
|
description: Флаг возможности случайного порядка выполнения действий в группе
|
||||||
|
Action:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
objectId:
|
||||||
|
type: string
|
||||||
|
description: Идентификатор объекта на схеме
|
||||||
|
propertyName:
|
||||||
|
type: string
|
||||||
|
description: Название свойства объекта
|
||||||
|
newValue:
|
||||||
|
type: string
|
||||||
|
description: Новое значение свойства объекта
|
||||||
|
CompletionCondition:
|
||||||
|
type: object
|
||||||
|
description: Условие завершения этапа
|
||||||
|
properties:
|
||||||
|
userActionCheckCondition:
|
||||||
|
type: string
|
||||||
|
enum:
|
||||||
|
- allUserActionsCompleted
|
||||||
|
- requiredUserActionsCompleted
|
||||||
|
- notCheck
|
||||||
|
description: Тип проверки пользовательских действий для завершения этапа
|
||||||
|
timeCondition:
|
||||||
|
$ref: "#/components/schemas/TimeCondition"
|
||||||
|
propertyListCondition:
|
||||||
|
type: array
|
||||||
|
description: Список условий по свойствам для завершения этапа
|
||||||
|
items:
|
||||||
|
$ref: "#/components/schemas/PropertyCondition"
|
||||||
|
TimeCondition:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
durationSeconds:
|
||||||
|
type: integer
|
||||||
|
description: Продолжительность в секундах для завершения этапа
|
||||||
|
PropertyCondition:
|
||||||
|
type: object
|
||||||
|
description: Проверка значения свойства объекта на схеме
|
||||||
|
properties:
|
||||||
|
objectId:
|
||||||
|
type: string
|
||||||
|
description: ID объекта на схеме
|
||||||
|
propertyName:
|
||||||
|
type: string
|
||||||
|
description: Название свойства
|
||||||
|
operator:
|
||||||
|
type: string
|
||||||
|
enum: [">", "<", "=", "!=", ">=", "<="]
|
||||||
|
expectedValue:
|
||||||
|
type: string
|
||||||
|
description: Ожидаемое значение для завершения этапа
|
||||||
Reference in New Issue
Block a user