SwaggerAPI — это веб-приложение, построенное с использованием ASP.NET Core. Оно включает в себя функционал для управления событиями (Events), билетами (Tickets) и объектами (Objects). Реализация основана на использовании MongoDB для хранения данных и Redis для кэширования. Так-же присутсвует Kafka для выполнения запросов с подтверждением в другой микросервис.
Приложение также предоставляет удобный Swagger UI для взаимодействия с API.
Советую к посещению: 2-ой микросервис Советую к посещению: APIGateway
SwaggerAPI/
├── Dependencies/ # Зависимости проекта, подключенные через NuGet
├── Properties/ # Конфигурационные файлы и параметры запуска
│ ├── appsettings.json # Основные настройки приложения (MongoDB, Redis, Kafka, логирование)
│ ├── appsettings.Development.json # Настройки для режима разработки, аналогичны верхним
│ └── launchSettings.json # Настройки запуска приложения
├── Controllers/ # Контроллеры API
│ ├── EventsController.cs # Обработчик запросов для работы с событиями
│ ├── ObjectsController.cs # Обработчик запросов для работы с объектами
│ └── TicketsController.cs # Обработчик запросов для работы с билетами
├── Models/ # Модели данных приложения
│ ├── ApiResponse.cs # Модель данных для ответа от API
│ ├── EventModel.cs # Модель данных для событий
│ ├── ObjectModel.cs # Модель данных для объектов
│ ├── MongoDBSettings.cs # Модель для конфигурации подключения к MongoDB
│ └── TicketModel.cs # Модель данных для билетов
├── Services/ # Сервисы и обработка данных
│ ├── EventService.cs # Сервис для работы с событиями
│ ├── ObjectService.cs # Сервис для работы с объектами
│ └── TicketService.cs # Сервис для работы с билетами
├── Tests/ # Тесты для проверки функциональности приложения
│ ├── KafkaProducer.cs # Реализация Kafka Producer для отправки сообщений
│ ├── KafkaConsumer.cs # Реализация Kafka Consumer для обработки сообщений
│ └── ApiTests.cs # Тесты API для контроля корректности работы
├── Utils/ # Утилиты приложения
│ └── ValidationFilter.cs # Свой валидатор ошибок при выполнении запросов
└── Program.cs # Точка входа в приложение
- .NET 8.0 (или новее)
- IDE с поддержкой .NET
- MongoDB (локальная или удалённая база данных)
- Redis (локальный или удалённый сервер)
- Kafka (локальный или удалённый сервер)
- Склонируй репозиторий:
git clone https://github.com/Nata-Practices/SwaggerAPI.git
- Перейди в папку проекта:
cd SwaggerAPI - Установи зависимости:
dotnet restore
- Собери проект:
dotnet build
- Запусти сервер:
dotnet run
- Приложение будет доступно по адресу
http://localhost:5294/swagger/index.html.
- Собери проект (если ещё этого не сделала):
dotnet build
- Убедись, что все другие проекты запущены!
- Запусти тесты:
Команда выполнит все тесты, определённые в проекте, и выведет результаты в консоль.
dotnet test --logger "console;verbosity=detailed"
GET /api/events— получить все событияPOST /api/events— создать новое событиеGET /api/events/{id}— получить конкретное событие по idPUT /api/events/{id}— обновить конкретное событие по idDELETE /api/events/{id}— удалить конкретное событие по idDELETE /api/events/all— удалить все события
GET /api/tickets— получить все билетыPOST /api/tickets— создать новый билетGET /api/tickets/{id}— получить конкретный билет по idPUT /api/tickets/{id}— обновить конкретный билет по idDELETE /api/tickets/{id}— удалить конкретный билет по idDELETE /api/tickets/all— удалить все события
GET /api/objects— получить все объектыPOST /api/objects— создать новый объектGET /api/objects/{id}— получить конкретный объект по idDELETE /api/objects/{id}— удалить конкретный объект по id
-
Producer:
- Отправляет запрос юзеру в тему
ObjectRequests.
- Отправляет запрос юзеру в тему
-
Consumer:
- Принимает сообщения из темы
ObjectConfirmations:- Сообщение содержит
Idобъекта (ключ) иtimestamp(значение). - Обновляет поле
ConfirmationTimestampдля соответствующего объекта.
- Сообщение содержит
- Принимает сообщения из темы