Skip to content

ns-88/EndlessParties

Repository files navigation

    ______          ____               ____             __  _          
   / ____/___  ____/ / /__  __________/ __ \____ ______/ /_(_)__  _____
  / __/ / __ \/ __  / / _ \/ ___/ ___/ /_/ / __ `/ ___/ __/ / _ \/ ___/
 / /___/ / / / /_/ / /  __(__  |__  ) ____/ /_/ / /  / /_/ /  __(__  ) 
/_____/_/ /_/\__,_/_/\___/____/____/_/    \__,_/_/   \__/_/\___/____/  

📝 Описание проекта

EndlessParties - простой сервис для организации мероприятий любого уровня: от встреч в верхах до дружеских посиделок у костра

🛠 Возможности API

API предоставляет следующие возможности для управления мероприятиями (Events):

  • GET /events: получение списка всех событий

    Параметры фильтрации (Query string):

    • Title (строка, необязательный) — поиск по названию
    • Description (число, необязательный) — поиск по описанию
    • From (дата, необязательный) — фильтр по дате и времени начала (включительно)
    • To (дата, необязательный) — фильтр по дате и времени завершения (включительно)
    • SortDirection (число) — направление сортировки (1 - по возрастанию, 2 - по убыванию)
    • Page (число, необязательный) — номер страницы для пагинации (по умолчанию: 1)
    • PageSize (число, необязательный) — количество элементов на странице (по умолчанию: 10)
  • GET /events/{id}: получение события по идентификатору

  • POST /events: создание события

  • PUT /events/{id}: обновление события

  • DELETE /events/{id}: удаление события

⚠️ Формат ответа при ошибках

  • 400 BadRequest: ошибка выполнения приложения

      {
        "type": "https://tools.ietf.org/html/rfc9110#section-15.5.1",
        "title": "Ошибка выполнения приложения",
        "status": 400,
        "detail": "Ошибка получения всех событий",
        "instance": "/events",
        "traceId": "00-99d784723d66b9db814da9fd1ef0c466-4acfee88b17f56ad-00"
      }
  • 500 InternalServerError: внутренняя ошибка сервера

      {
        "type": "https://tools.ietf.org/html/rfc9110#section-15.6.1",
        "title": "Неизвестная ошибка выполнения приложения",
        "status": 500,
        "detail": "Неизвестная ошибка",
        "instance": "/events",
        "traceId": "00-ab8552432b7d8d1fa39968abd9c9bf80-48c69cd853602627-00"
     }
  • 404 NotFound: запрашиваемый объект не найден

   {
     "type": "https://tools.ietf.org/html/rfc9110#section-15.5.5",
     "title": "Запрашиваемый объект не найден",
     "status": 404,
     "detail": "Событие не найдено. Id: \"6f5128c1-9661-4588-a379-adc4464c77bd\"",
     "instance": "/events/6f5128c1-9661-4588-a379-adc4464c77bd",
     "traceId": "00-cabb3b6eab7fe8494c311825004ddfff-2e156146f6a0ad90-00"
   }
  • 422 UnprocessableEntity: ошибка валидации входных значений
   {
     "type": "https://tools.ietf.org/html/rfc4918#section-11.2",
     "title": "Ошибка валидации данных",
     "status": 422,
     "instance": "/events",
     "errors": {
       "StartAt": [
         "'Start At' должно быть меньше '03.03.2026 22:38:05'."
       ]
     },
     "traceId": "00-e5c9af7b7f1c58de0a37043895dc54ec-c50d16f39e864b21-00"
   }

🚀 Сборка и запуск

Предварительные требования

  • .NET 10 SDK
  • IDE (Visual Studio 2022 / JetBrains Rider / VS Code)

Запуск

  1. Клонируйте репозиторий:
    git clone https://github.com/ns-88/EndlessParties
  2. Перейдите в директорию проекта:
    cd EndlessParties
  3. Восстановите зависимости и соберите проект:
    dotnet build
  4. Запустите приложение:
    dotnet run --project src\Presentation\EndlessParties.Presentation

После запуска Swagger-документация будет доступна по адресу: http://localhost:5000/index.html

Запуск тестов

   dotnet test

About

Сервис для управления мероприятиями - учебный проект для Яндекс.Практикум.

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages