Skip to content
This repository was archived by the owner on Sep 9, 2021. It is now read-only.
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
91 changes: 0 additions & 91 deletions README.md

This file was deleted.

171 changes: 171 additions & 0 deletions lab4.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,171 @@
openapi: 3.0.0
servers:
# Added by API Auto Mocking Plugin
- description: SwaggerHub API Auto Mocking
url: https://virtserver.swaggerhub.com/Polytech7/lab4/1.0.0
info:
description: Удаленный калькулятор, позволяющий дистанционно выполнять быстрые и медленные математические операции
version: "1.0.0"
title: API Удаленного кулькулятора
contact:
email: [email protected]
license:
name: Apache 2.0
url: 'http://www.apache.org/licenses/LICENSE-2.0.html'

paths:
/short_operation:
post:
summary: отправить быструю операцию с аргументами на вычисление
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ShortOperationRequest'
required: true
responses:
'200':
description: успешое выполнение операциии, получение результата
content:
application/json:
schema:
$ref: '#/components/schemas/ShortOperationResult'
'401':
description: ошибка при выполнении операции, неподходящие аргументы

/long_operation:
post:
summary: отправить долгую операцию с аргументом на вычисление
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/LongOperationRequest'
required: true
responses:
'200':
description: успешое выполнение операциии, получение результата
content:
application/json:
schema:
$ref: '#/components/schemas/LongOperationResult'
'401':
description: ошибка при выполнении операции
content:
application/json:
schema:
$ref: '#/components/schemas/LongOperationError'

/operations:
get:
description: получение списка доступных операций
responses:
200:
description: список операций
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Operation'

components:
schemas:
ShortOperationRequest:
type: object
required:
- op_code
- arg1
- arg2
properties:
op_code:
type: number
example: 0
description: 0 - сложение, 1 - вычитение, 2 - умножение, 3 - деление
arg1:
type: number
example: 5.5
arg2:
type: number
example: 19

ShortOperationResult:
type: object
required:
- result
properties:
result:
type: number
example: 222.4

LongOperationRequest:
type: object
required:
- op_code
- arg1
properties:
op_code:
type: number
example: 0
description: 0 - взятие факториала, 1 - взятие квадратного корня
arg1:
type: number
example: 5

LongOperationResult:
type: object
required:
- op_code
- supplied_arg
- result
properties:
op_code:
type: number
example: 0
description: код операции даёт понять, для какой долгой операции получен результат
supplied_arg:
type: number
example: 5
description: аргумент, полученный от пользователя при отправлении на вычисление даёт понять, для какого аргумента проводилась операция
result:
type: number
example: 99999
description: результат в случае успешного выполнения операции

LongOperationError:
type: object
required:
- error_code
- op_code
- supplied_arg
properties:
error_code:
type: number
example: 1
description: 1 - не удалось провести вычисления, неподходящие аргументы, 2 - сервер слишком долго производил вычисления и сбросил задачу
op_code:
type: number
example: 0
description: код операции даёт понять, для какой долгой операции получен результат
supplied_arg:
type: number
example: 5
description: аргумент, полученный от пользователя при отправлении на вычисление даёт понять, для какого аргумента проводилась операция

Operation:
type: object
required:
- op_type
- op_code
- op_name
properties:
op_type:
type: number
description: тип операции, 0 - быстрые операции, 1 - долгие
op_code:
type: number
description: код операции, совместно с типом определяющий конкретную операцию
op_name:
type: string
description: название операции