The News.Publishing.Api is a backend for managing the publishing flow of articles and videos. This service coordinates the creation, linking, and publication of content.
- 🛠️ .NET 9
- 📡 MassTransit: Provides RabbitMQ integration for the event-driven communication between services.
- 📦 Marten: Used for event sourcing and data persistence.
- 🐳 Docker & Docker Compose: Used for containerizing the service and running it in different environments.
- 🛠️ .NET SDK 9.0+ (Available here)
- 🐳 PostgreSQL 12+ (Available here)
- 🐳 Docker (Available here)
- 🐰 RabbitMQ (Available here)
The fastest possible way to develop with is to just start News.Publishing.AppHost
project by hitting "F5" thanks to .NET Aspire.
Another possible way is to run PostgreSQL and RabbitMQ in a Docker container. Assuming that you have Docker running on your local box, type:
docker compose up -d postgres rabbitmq
-
Clone the repository:
git clone https://github.com/dnovhorodov/News.Publishing.git cd News.Publishing
-
Run dependencies:
docker compose up -d postgres rabbitmq
-
Run service:
dotnet run --project ./src/News.Publishing.Api/News.Publishing.Api.csproj
-
API Documentation: Swagger is enabled for API documentation. Once the service is running, navigate to
http://localhost:5267/swagger/index.html
to explore the endpoints.
The service includes unit and integration tests to validate its functionality.
- 🧷 FluentAssertions: For expressive assertions in unit tests.
- 📝 Ogooreck: For BDD-style testing and scenario definitions.
- 🎲 Bogus: For generating fake data to test various edge cases.