Добавлены схемы и файлы для диплома
This commit is contained in:
218
api_specification/openapi.yml
Normal file
218
api_specification/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