【发布时间】:2021-10-04 14:07:19
【问题描述】:
我正在尝试使用 Microsoft.AspNetCore.OData v8.0.1 通过 .NET 5 中的请求标头进行版本控制,并使用 SwaggerUI 进行版本控制。
Pre-v8,你曾经可以使用
services.AddODataApiExplorer(...);
这将为 Startup 的 Configure 方法启用 DependencyInjection:
public void Configure(IApplicationBuilder app, IWebHostEnvironment env, IApiVersionDescriptionProvider provider) {
...
app.UseSwagger();
app.UseSwaggerUI(options => {
// build a swagger endpoint for each discovered API version
foreach (var description in provider.ApiVersionDescriptions) {
options.SwaggerEndpoint($"/swagger/{description.GroupName}/swagger.json", description.GroupName.ToUpperInvariant());
}
options.ShowExtensions();
});
...
}
OData8 似乎无法立即处理此问题,best documentation I can find on versioning 仅处理 URL 段和查询字符串版本控制的提示。如果可以的话,我更愿意在 URL 中保存字符,这就是我想要使用请求标头版本控制的原因。
感谢任何指导。
【问题讨论】:
-
您可以使用操作过滤器将标头参数添加到所有版本化操作。它会出现在招摇的用户界面中。这对你有用吗?
-
像这样stackoverflow.com/questions/68101038/…,但作为标题,而不是查询参数。见标题
Setting default parameters depending on version in Swagger UI
标签: c# asp.net-web-api swagger odata asp.net5