use*_*834 5 c# swagger asp.net-core openapi swagger-codegen
我正在使用Swashbuckle.AspNetCore.SwaggerGen
版本 v6.1.5 的 ASP.NET Core。
我希望像[HttpGet]
或[HttpGet("user")]
in a public这样的路由swagger.json
用于公共端点,而包含internal
在像这样的路由内部的其他路由[HttpGet("internal/user/{userGuid}")]
位于swagger.json
端点的内部实例中。
我在启动时配置 SwaggerConfigureServices
如下:
services.AddSwaggerGen(gen =>
{
gen.SwaggerDoc("v1", new OpenApiInfo
{
Title = "Server API",
Version = "1.0",
Description = "This API features all public available endpoints showing different API features."
});
gen.SwaggerDoc("v1-internal", new OpenApiInfo
{
Title = "Viewer Server API (internal)",
Version = "v1-internal",
Description = "This API features all public available endpoints showing different API features."
});
});
Run Code Online (Sandbox Code Playgroud)
并在Configure
app.UseSwagger();
app.UseSwaggerUI(c =>
{
c.SwaggerEndpoint("/swagger/v1/swagger.json", "Viewer Server API v1");
c.SwaggerEndpoint("/swagger/v1-internal/swagger.json", "Viewer Server API v1 (internal)");
});
Run Code Online (Sandbox Code Playgroud)
我怎样才能让它创建一个 public 和一个 inside swagger.json
?
use*_*834 10
过滤不同的version
或在我的例子中的“可见性层”可以像下面这样完成。在启动时配置 Swagger,如下ConfigureServices
所示:
services.AddSwaggerGen(gen =>
{
gen.SwaggerDoc("v1", new OpenApiInfo
{
Title = "Server API",
Version = "1.0",
Description = "This API features all public available endpoints showing different API features."
});
gen.SwaggerDoc("v1-internal", new OpenApiInfo
{
Title = "Viewer Server API (internal)",
Version = "v1-internal",
Description = "This API features all public available endpoints showing different API features."
});
gen.DocInclusionPredicate((docName, apiDesc) =>
{
if (docName.Contains("internal"))
{
return apiDesc.RelativePath.Contains("internal/");
}
else
{
return !apiDesc.RelativePath.Contains("internal/");
}
});
});
Run Code Online (Sandbox Code Playgroud)
并在Configure
app.UseSwagger();
app.UseSwaggerUI(c =>
{
c.SwaggerEndpoint("/swagger/v1/swagger.json", "Viewer Server API v1");
c.SwaggerEndpoint("/swagger/v1-internal/swagger.json", "Viewer Server API v1 (internal)");
});
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3120 次 |
最近记录: |