Skip to content

Liepa company demo task. Includes RESTful service based on ASP.NET Core, EF Core with MySQL and .NET Core Console app to access the service API.

License

Notifications You must be signed in to change notification settings

axtox/liepa-demo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Задача

Требуется реализовать сервис на asp core и консольное приложение, которое вызывает методы на сервисе.

Есть коллекция пользователей. У каждого пользователя есть ид, имя и статус (New, Active, Blocked, Deleted). Информация о пользователях хранится в БД MySql.

При запуске сервиса нужно загрузить информацию из БД, затем раз в 10 минут обновлять данные. Считаем, что запросов на получение данных много, а изменение данных происходит редко, поэтому при запросе UserInfo нужно брать данные из памяти а не делать запрос в БД.

Все исключения в сервисе должны обрабатываться в коде.

Методы, в путях которых есть /auth/ должны использовать механизм Basic Authorization.

Описание методов

Создание пользователя.

Метод CreateUser

  • Url: /auth/CreateUser
  • Request: POST

Входные параметры — XML вида:

<Request>
 <user Id="999" Name="alex">
 <Status>New</Status>
 </user>
</Request>

Ответ также в формате XML:

<Response Success="true" ErrorId="0">
 <user Id="999" Name="alex">
 <Status>New</Status>
 </user>
</Response>

Пример ответа при ошибке:

<Response Success="false" ErrorId="1">
 <ErrorMsg>User with id 99 already exist</ErrorMsg>
</Response>

Удаление пользователя.

Метод RemoveUser

  • Request: POST
  • Url: /auth/RemoveUser

Входные параметры — JSON вида:

{"RemoveUser":{"Id":999}}

Ответ: успех:

{"Msg": "User was removed","Success": true,"user":{"Status": "Deleted","Id": 999,"Name": 
"alex"}}

Ошибка:

{"ErrorId": 2,"Msg": "User not found","Success": false}

Информация о пользователе

Метод UserInfo

  • Request: GET
  • Url: /public/UserInfo?id=999

Изменения статуса пользователя

Метод SetStatus

  • Request: POST
  • Url: /auth/SetStatus
  • Content-Type: application/x-www-form-urlencoded

Параметры:

Id int <Ид пользователя>
NewStatus string <Статус пользователя>

Формат ответа JSON

{"Success": true,"user":{"Status": "Deleted","Id": 999,"Name": 
"alex"}}

About

Liepa company demo task. Includes RESTful service based on ASP.NET Core, EF Core with MySQL and .NET Core Console app to access the service API.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages