当前位置: 首页 > 知识库问答 >
问题:

Swagger ui在测试页面中添加了一个额外的 /path

孔君浩
2023-03-14

我在一个嵌入zuul的Spring引导应用程序后面有几个微服务,让我们称之为“网关”。

这是我的配置文件:

zuul:
  prefix: /api
  routes:
    api-login:
      path: /login/**
      url: http://localhost:8070/the-login/
    api-other:
        ...

我想在网关应用程序中显示我的每项服务的文档,因此我创建了以下内容:

@Component
@Primary
@EnableAutoConfiguration
public class SwaggerDocumentationController implements SwaggerResourcesProvider{

@Override
public List<SwaggerResource> get() {
    List<SwaggerResource> resources = new ArrayList<SwaggerResource>();
    resources.add(swaggerResource("login-service", "/api/login/api-docs", "2.0"));
    ...
    return resources;
}

private SwaggerResource swaggerResource(String name, String location, String version) {
    SwaggerResource swaggerResource = new SwaggerResource();
    swaggerResource.setName(name);
    swaggerResource.setLocation(location);
    swaggerResource.setSwaggerVersion(version);
    return swaggerResource;
}
 }

它工作得非常好:每次用户转到/gateway/api/login,它都会被重定向到我的微服务,也就是/thelogin/。此外,当用户转到/gateway/login/swagger用户界面时。html他们可以查看文档。

问题在于,当用户尝试从swagger ui文档页面获取api时,他们会得到:

{
  "timestamp": "2018-05-12T15:35:38.840+0000",
  "status": 404,
  "error": "Not Found",
  "message": "No message available",
  "path": "/the-login/the-login/LoginTest"
 }

如你所见,zuul在路径上又增加了 /the-login!这是一个昂首阔步的错误,还是我做错了什么?

共有1个答案

沈华皓
2023-03-14

这就是为什么the-log被追加了两次(一次来自base url,一次来自config)。这可能是swagger ui中的一个错误。

我尝试了一种变通方法,效果很好

从应用程序中删除/删除登录名。yml

zuul:
  prefix: /api
  routes:
    api-login:
      path: /login/**
      url: http://localhost:8070/
    api-other:

现在不会加载swagger资源,所以需要修改swagger资源路径。

在swagger资源中添加登录

resources.add(swaggerResource("login-service", "/api/login/the-login/api-docs", "2.0"));
 类似资料:
  • 我正在尝试将Gradle(1.4)添加到一个现有的项目中,该项目有多个测试套件。位于中的标准单元测试成功运行,但我在设置任务以运行位于中的JUnit测试时遇到了麻烦。 当我运行时,对于中的类,我遇到了几个错误。这使我认为依赖项设置不正确。如何设置以便它运行我的JUnit集成测试? Build.Gradle 细节:1.4级 解决方案:我没有为集成测试源集设置编译类路径(参见下面)。在我的I代码中,我

  • 问题内容: 输入文件: python代码: 问题: 如您所见,输出在每个项目之间都有多余的行。 如何预防呢? 问题答案: 追加一个换行符,并且输入行已经以换行符结尾。 一个标准的解决方案是逐字输出输入行: PS :对于Python 3(或具有打印功能的Python 2),abaront的解决方案是最简单的解决方案。

  • 将数据写入字符串生成器的逻辑,在由于append(“\n”)而迭代最后一条记录之后,将添加一个我不需要的新空行。

  • 问题内容: 它会生成文件,每行都有一个额外的文件,如下所示: 而不是预期的: 为什么会发生这种情况,或者这实际上是预期的行为? 注意: - Python 2或3可能会发生此现象。 问题答案: Python 3: 如YiboYang所述, 如CoDEmanX的评论所述, Python 2: 在Windows上,在将文件传递到或之前,始终以二进制模式(或)打开文件。 尽管该文件是文本文件,但是所涉及的

  • 我可以添加流或额外的元素,像这样: 我可以边走边添加新的东西,比如: 但这很难看,因为是静态的。如果是一个实例方法,那么上面的示例将更容易阅读: 而且 2)无论如何,有没有更好的方法?

  • 问题内容: 我有这两个课(表) 还有这个: 运行此代码后,在数据库(student_course)中创建了一个额外的表,现在我想知道如何在该表中添加额外的字段,例如(Grade,Date和…(我的意思是student_course表)),我看到了一些解决方案,但我不喜欢它们,而且我对它们有一些问题: 第一个样品 问题答案: 如果在链接表(STUDENT_COURSE)上添加额外的字段,则必须根据s