Skip to content

i00lii/kaspersky-test

Repository files navigation

ТЗ: С использованем языка программирования C# создать WEB API со следующими функциями

Для запуска приложения требуется установленный пакет .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
}

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages