Files
diplom/api_specification/openapi.yml
2025-11-21 16:06:47 +03:00

218 lines
7.1 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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: Ожидаемое значение для выполнения проверки