我读过很多文章,升级的、降级的,甚至侧降级的,但没有任何东西可以在 PCF 上显示 Swagger 定义。
让它变得格外困难的是,它可以在本地运行 VS 2019 IIS Express,但当我推送到 PCF 时,它会失败。我所说的失败是指 swagger UI 加载但没有定义任何操作。
技术规格:
AspNetCoreAll 2.2.0
Swashbuckle.AspNetCore 4.0.1
Swashbuckle.AspNetCore.Annotations 4.0.1
swagger-codegen-cli-2.3.0
PCF
构建包:dotnet_core_buildpack_2_2_5
堆栈:cflinuxfs3
启动.cs
public void ConfigureServices(IServiceCollection services)
{
services
.AddSwaggerGen(c =>
{
c.SwaggerDoc("1.0.0", new Info
{
Version = "1.0.0",
Title = "MyAPI",
Description = "MyAPI (ASP.NET Core 2.2)",
Contact = new Contact()
{
Name = "Production Support Team",
Url = "https://github.com/swagger-api/swagger-codegen",
Email = "[email protected]"
},
TermsOfService = ""
});
}
public void Configure(...)
{
.UseSwagger()
.UseSwaggerUI(c =>
{
//string swaggerJsonBasePath = string.IsNullOrWhiteSpace(c.RoutePrefix) ? "." : "..";
//c.SwaggerEndpoint($"{swaggerJsonBasePath}/swagger/1.0.0/swagger.json", "ipt-client-mobile-bff");
c.SwaggerEndpoint("/swagger/1.0.0/swagger.json", "MyAPI");
});
我还发现了这个:openapi-original.json,这看起来很像我的招摇操作....??
有些事情我不清楚:
我认为 swagger.json 是在您点击 /swagger 端点并加载 Swagger-UI 时动态生成的。
然而,PCF 人员说它是在构建时生成的,它没有显示在 PCF 上的原因是因为我的 PCF 打包和构建过程不包含它。
无论是哪一个,我在磁盘上都找不到
swagger.json
,这让我怀疑它是在内存中动态生成的。
PCF 日志或 F-12 开发工具中也没有抛出任何错误。
非常有趣...我删除了一个第 3 方库,因为它未通过安全扫描,然后推送到 dev / qa...我的招摇又开始工作了!
我已将这两个问题通知了第三方库的制造商。