【问题标题】:Swagger not functioning when run through APIGEE通过 APIGEE 运行时 Swagger 不起作用
【发布时间】:2018-07-07 00:17:30
【问题描述】:

我有一个 ASP.NET Web API Core 2 项目,它使用 Swashbuckle.AspNetCore nuget 将 swagger UI 添加到我的解决方案中。 当我在调试器中运行它或在 IIS 中托管它时,swagger UI 会很好地出现,并且一切都按预期工作。

但是当我将我的网站代理放入 APIGEE 时,它会出现

未找到获取错误/swagger/v1/swagger.json

这是我项目的相关部分

services.AddSwaggerGen(c => {
    c.SwaggerDoc("v1", new Info {
        Version = "v1",
            Title = "My Web API",
            Description = "An awesome API.",
            TermsOfService = "",
            Contact = new Contact {
                Name = "...",
                    Email = "...",
                    Url = "http://..."
            }
    });
});
services.AddSwaggerGen(c => { c.IncludeXmlComments(GetXmlCommentsPath("Project1.xml")); });
services.AddSwaggerGen(c => { c.IncludeXmlComments(GetXmlCommentsPath("Project2.xml")); });

app.UseSwagger();
app.UseSwaggerUI(c => { c.SwaggerEndpoint("/swagger/v1/swagger.json", "My Web API v1"); });

如何让 swagger 通过 APIGEE 运行?

更新
调试控制台显示错误。

HTTP404: NOT FOUND - 服务器没有找到任何匹配的 请求的 URI(统一资源标识符)。
(XHR) 获取 - https://mysite.apigee.net/swagger/v1/swagger.json

它已经完全删除了站点路径。当我添加时

app.UseSwaggerUI(c => { c.SwaggerEndpoint("../swagger/v1/swagger.json", "My Web API v1"); });

它出现了招摇的 UI,但它现在可以进行的调用正在删除站点前缀。例如,

https://mysite.apigee.net/myapp/about 变为 https://mysite.apigee.net/about

应该发生的是

https://mysite.apigee.net/myapp/swagger 调出招摇用户界面
https://mysite.apigee.net/myapp/swagger/v1/swagger.json 为我提供 JSON
https://mysite.apigee.net/myapp/about 调用我的正常端点。

它只是第一个不起作用,它看起来在错误的地方。

【问题讨论】:

  • 您是否尝试过使用{apigeehost}/{basepath }/swagger 访问swagger?
  • 我不确定我的基本路径是什么。我试过{apigeehost}/swagger,这给了我上面的错误。
  • 如果直接访问,您的其他端点 api 端点是否工作,例如GET 请求?
  • 是的,所有其他端点都按预期工作。
  • 此外,直接访问 json 再次按预期工作。所以它实际上是找不到它的 UI。

标签: c# asp.net-core-2.0 swagger-ui apigee


【解决方案1】:

我遇到了同样的问题。您需要将 Apigee 基本路径添加到 Swagger Endpoint。在此示例中,“myapp”是基本路径。我还必须在 Chrome 浏览器上按 Ctrl + F5 才能重新加载页面以查看更改。

app.UseSwaggerUI(c => { c.SwaggerEndpoint("/myapp/swagger/v1/swagger.json", "My Web API v1"); });

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-01-03
    • 1970-01-01
    • 1970-01-01
    • 2018-07-18
    • 1970-01-01
    • 2020-08-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多