TaskHub.Shared

API Versioning & Swagger

TaskHub.Shared provides a unified way to version your APIs and document them using Swagger (OpenAPI).

API Versioning

TaskHub uses URL-based versioning by default (e.g., /v1/tasks).

Configuration

"Versioning": {
  "DefaultVersion": "1.0",
  "AssumeDefaultVersionWhenUnspecified": true
}

Usage

Decorate your controllers with the [ApiVersion] and [Route] attributes.

[ApiVersion("1.0")]
[Route("v{version:apiVersion}/tasks")]
public class TasksController : ControllerBase { ... }

Swagger Integration

The TaskHub.Shared.Swagger module pre-configures Swagger UI to handle TaskHub’s specific patterns.

Configuration

"Swagger": {
  "Title": "TaskHub API",
  "Version": "v1",
  "IsSecurityEnabled": true
}

Features

Registration

In your Program.cs:

builder.Services.AddAppVersioning(builder.Configuration.GetSection("Versioning").Bind);
builder.Services.AddAppSwagger(builder.Configuration.GetSection("Swagger").Bind);

In your app configuration:

app.UseSwagger();
app.UseAppSwaggerUI(builder.Configuration.GetSection("Swagger").Bind);