Skip to content

Commit cdd3a86

Browse files
authored
feat: allow configuring api versioning (#343)
1 parent d8a9281 commit cdd3a86

File tree

4 files changed

+26
-12
lines changed

4 files changed

+26
-12
lines changed
Lines changed: 24 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using Asp.Versioning;
2+
using Asp.Versioning.ApiExplorer;
23
using Asp.Versioning.Conventions;
34

45
// ReSharper disable once CheckNamespace
@@ -13,17 +14,31 @@ public static class ApiVersioningInjectors
1314
/// Add API Versioning, use <see cref="VersionByNamespaceConvention"/> by default.
1415
/// </summary>
1516
/// <param name="services"><see cref="IServiceCollection"/></param>
17+
/// <param name="versioningSetup">Versioning Setup.</param>
18+
/// <param name="mvcApiVersioningSetup">Setups in MVC api versioning.</param>
19+
/// <param name="apiExplorerSetup">Setups for ApiExplorer.</param>
1620
/// <returns></returns>
17-
public static IApiVersioningBuilder AddCnblogsApiVersioning(this IServiceCollection services)
21+
public static IApiVersioningBuilder AddCnblogsApiVersioning(
22+
this IServiceCollection services,
23+
Action<ApiVersioningOptions>? versioningSetup = null,
24+
Action<MvcApiVersioningOptions>? mvcApiVersioningSetup = null,
25+
Action<ApiExplorerOptions>? apiExplorerSetup = null)
1826
{
1927
services.AddEndpointsApiExplorer();
20-
return services.AddApiVersioning(o => o.ReportApiVersions = true)
21-
.AddMvc(o => o.Conventions.Add(new VersionByNamespaceConvention()))
22-
.AddApiExplorer(
23-
o =>
24-
{
25-
o.GroupNameFormat = "'v'VVV";
26-
o.SubstituteApiVersionInUrl = true;
27-
});
28+
return services.AddApiVersioning(o =>
29+
{
30+
versioningSetup?.Invoke(o);
31+
})
32+
.AddMvc(o =>
33+
{
34+
o.Conventions.Add(new VersionByNamespaceConvention());
35+
mvcApiVersioningSetup?.Invoke(o);
36+
})
37+
.AddApiExplorer(o =>
38+
{
39+
o.GroupNameFormat = "'v'VVV";
40+
o.SubstituteApiVersionInUrl = true;
41+
apiExplorerSetup?.Invoke(o);
42+
});
2843
}
2944
}

src/Cnblogs.Architecture.Ddd.Cqrs.Dapper.SqlServer/Cnblogs.Architecture.Ddd.Cqrs.Dapper.SqlServer.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
</ItemGroup>
1212

1313
<ItemGroup>
14-
<PackageReference Include="Microsoft.Data.SqlClient" Version="6.1.1" />
14+
<PackageReference Include="Microsoft.Data.SqlClient" Version="6.1.2" />
1515
</ItemGroup>
1616

1717
</Project>

src/Cnblogs.Architecture.Ddd.Infrastructure.CacheProviders.Redis/Cnblogs.Architecture.Ddd.Infrastructure.CacheProviders.Redis.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
</ItemGroup>
1313

1414
<ItemGroup>
15-
<PackageReference Include="StackExchange.Redis" Version="2.9.25" />
15+
<PackageReference Include="StackExchange.Redis" Version="2.9.32" />
1616
</ItemGroup>
1717

1818
</Project>

test/Cnblogs.Architecture.IntegrationTestProject/Program.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
.AddEventBus(o => o.UseDapr(Constants.AppName));
1818
builder.Services.AddControllers().AddCqrsModelBinderProvider().AddLongToStringJsonConverter();
1919

20-
// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
2120
builder.Services.AddCnblogsApiVersioning();
2221

2322
var app = builder.Build();

0 commit comments

Comments
 (0)