Skip to content

Тестовое задание для стажировки в Vk

Notifications You must be signed in to change notification settings

gitbleidd/vk-internship

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 

Repository files navigation

API приложение на ASP.NET Core

Тестовое задание для стажировки Vk 2023. Было необходимо реализовать API приложение для управления пользователями.

✅Что реализовано

Основные задачи

Реализованы следующие REST-методы API для управления пользователями:

  • Создание пользователя. Метод создает пользователя и возвращает полную информацию о нем с group и state.
  • Удаление пользователя по его идентификатору. Реализовано мягкое удаление, путем выставления статуса "Blocked" у пользователя.
  • Получение полной информации о пользователе по его идентификатору
  • Получение списка пользователей. Метод возвращает список существующих пользователей с возможностью отправки по частям для снижения нагрузки.

Информация о пользователе содержит id, логин, дату создания, группу и состояние.

Опциональные задачи

  • Реализована Basic-авторизации, добавлена возможность авторизация через Swagger. Также для тестирования на методе удаления применен атрибут Authorize для роли администратора.
  • Реализована пагинация для получения списка пользователей с параметрами offset и limit.
  • Написаны unit-тесты для сервиса пользователей с использованием библиотеки OneOf.

Требования

  • .NET 7.0
  • ASP.NET 7.0

🚀Запуск приложения

Приложение можно собрать и запустить локально, либо запустить через Docker.

Локальный запуск

Для того, чтобы запустить проект локально с возможностью отладки понадобится установить .NET 7 SDK.

(Проверить версию .NET можно командой: dotnet --version)

Ссылка на .NET с инструкцией установки.

Далее необходимо скачать исходники проекта, в appsettings изменить строку подключения к БД на свою и в папке с проектом выполнить команды:

dotnet restore  # Восстановить зависимости
dotnet run      # Запустить приложение

Запуск через Docker

Аналогично скачиваем исходники и в папке с docker-compose файлом выполняем команды:

docker-compose build    # Собрать проект
docker-compose up       # Запустить проект

После запуска приложение будет доступно по адресу http://localhost:5000.

Дополнительно

Задержка создания

При создании пользователя выставлена искусственная задержка 5 секунд. Так как удаления пользователей реализовано мягко на логин пользователя в БД нет ограничения уникальности (т.е. может быть несколько удаленных пользователей с одним и тем же логином). Непосредственно создание пользователя обернуто в транзакцию уровня Serializable. Это сделано для того, чтобы избежать ситуации, когда сервер получает два и более запроса на создание с одним и тем логином и создает несколько пользователей с одинаковым логином.

OpenAPI документация

About

Тестовое задание для стажировки в Vk

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published