Для запуска приложения требуется установленный пакет .Net Core Runtime версии не ниже 2.1. Запуск вполняется командой dotnet run
в папке /Kaspersky.Api
, либо же из Visual Studio:) По умолчанию приложение хостится по адресу http://127.0.0.1:5000
. После запуска можно зайти на страницу http://127.0.0.1:5000/swagger/index.html
с докуметацией и возможностью протестировать методы API.
POST /api/bookshelf/book/add
Формат тела запроса:
{
"title":"C# 4.0 : полное руководство", // обязательный параметр, не более 30 символов
"publisher":"Вильямс", // опциональный параметр, не более 30 символов
"isbn":"978-5-8459-2015-7", // ISBN http://en.wikipedia.org/wiki/International_Standard_Book_Number
"pagesTotal":1056, // обязательный параметр, больше 0 и не более 10000
"publicationYear":2018, // опциональный параметр, не раньше 1800
"authors":[ // книга должна содержать хотя бы одного автора
{
"name":"Г.", // обязательный параметр, не более 20 символов
"surname":"Шилдт" // обязательный параметр, не более 20 символов
}
]
}
GET /api/bookshelf/book/{bookId}/delete
bookid - GUID (идентификатор существующей книги)
POST /api/bookshelf/book/{bookId}/update
bookId - GUID (идентификатор существующей книги)
Формат тела запроса аналогичен запросу `book/add`
GET /api/bookshelf/book/search??field={fieldId}&direction={directionId}
Возможные варианты параметров:
fieldId: ["title", "year"]
directionId: ["asc", "desc"]
Оба параметра опциональные, по умолчанию применяются "title", "asc"
Формат тела ответа:
{
"result": [
{
"id": "dfd3d69c-73e0-467d-93e3-426b2db48b75",
"value": {
"title": "C# 4.0 : полное руководство",
"publisher": "Вильямс",
"isbn": "978-5-8459-2015-7",
"pagesTotal": 1056,
"publicationYear": 2018,
"authors": [
{
"name": "Г.",
"surname": "Шилдт"
}
]
}
},
...
]
}
POST /api/bookshelf/book/{bookId}/thumbnail
bookId - GUID (идентификатор существующей книги)
Метод принимает данные в формате `multipart/form-data`
POST /api/rpn/execute
Пример тела запроса:
{
// Операторы: + - * / ^
// Операнды: знаковые целые числа (int) или знаковые числа двойной точности (double) в формате текущей локали сервера
"expression": "2 3 +"
}
Пример тела ответа:
{
// знаковое число двойной точности (long)
"result": 42
}