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

我已经使用springdoc安装了OpenAPI 3,但是网址很奇怪。我能把它改成期望值吗?

洪和风
2023-03-14

我在Java项目的pom文件中使用以下构件安装了swagger ui:

   <dependency>
      <groupId>org.springdoc</groupId>
      <artifactId>springdoc-openapi-ui</artifactId>
      <version>1.5.2</version>
   </dependency>

   <dependency>
      <groupId>org.springdoc</groupId>
      <artifactId>springdoc-openapi-security</artifactId>
      <version>1.5.2</version>
   </dependency>

当我转到这个URL时,我可以查看RESTfulendpoint的招摇过市ui

http://localhost:8081/swagger-ui/index.html?configUrl=/v3/api-docs/swagger-config

但不是这个链接

http://localhost:8081/swagger-ui/index.html

这是为什么呢?如何将其更改回预期的URL?

共有2个答案

钮勇
2023-03-14

您需要在http://localhost:8081/swagger-ui.html访问swagger ui,而不是加载宠物店默认swagger的http://localhost:8081/swagger-ui/index.html。你可以检查周围的工作在

https://github.com/springdoc/springdoc-openapi/issues/43

urlhttp://localhost:8081/swagger-用户界面。html将始终被重定向到http://localhost:8081/swagger-用户界面/索引。html?configUrl=/v3/api文档/swagger配置

您可以自定义以下application.properties

springdoc.api-docs.path=/api-docs 
springdoc.swagger-ui.path=/swagger-ui-custom.html

现在urlhttp://localhost:8081/swagger-用户界面自定义。html将被重定向到http://localhost:8081/swagger-用户界面/索引。html?configUrl=/api文档/swagger配置

赵明亮
2023-03-14

首先,下面的依赖关系与您提到的问题无关。

<dependency>
    <groupId>org.springdoc</groupId>
    <artifactId>springdoc-openapi-security</artifactId>
    <version>1.5.2</version>
</dependency>

现在来回答你的问题。

网址http://localhost:8081/swagger-用户界面/索引。html来自于构建Springdoc的Swagger核心库,因此它将提供默认的Petstore示例。尽管可以使用应用程序中的以下属性禁用此页面。属性文件。

springdoc.swagger-ui.disable-swagger-default-url=true

但这只适用于v1.4.1及以上版本。

现在在URlhttp://localhost:8081/swagger-ui/index.html?configUrl=/v3/api-docs/swagger-config查询参数confiUrl指定从哪里获取Springdoc特定于Swagger的配置文件。

现在如果你真的点击了网址http://localhost:8081/v3/api-docs/swagger config,您将得到一个与下面类似的配置文件

{
  "configUrl": "/v3/api-docs/swagger-config",
  "docExpansion": "none",
  "urls": [
    {
      "url": "/v3/api-docs/default",
      "name": "default"
    }
  ],
  "validatorUrl": ""
}

url对象包含每个API组的各个对象。每个API组都显示在Swagger UI中,如下所示

现在,对于每个API组,Springdoc使用这些属性通过从给定的url获取OpenAPI规范文件来呈现Swagger-UI,并且name如上图所示呈现。

至于docExpansion属性,它被设置为none,因为该设置是在我的应用程序中明确指定的。属性

  • 如果要覆盖从中获取Springdoc的Swagger配置文件的URL,请使用以下属性。基本上,新URL应该返回一个与/v3/api docs/swagger config返回的配置文件类似的配置文件。默认设置为/v3/api文档/swagger配置
springdoc.swagger-ui.configUrl=/mySpringdocConfig
  • 使用以下属性覆盖Springdoc的招摇过市UI加载的URL。默认为/swagger用户界面。html,这就是为什么在http://localhost:8081/swagger-用户界面。html
springdoc.swagger-ui.path=/mySwagger-UIPath

>

  • 我认为不可能摆脱?从URL中配置Url=/v3/api-docs/swagger-config,因为它将始终可用,并指向将从其中获取Sprinfdoc配置文件的位置,如果不可用,将导致在获取配置文件时出错,从而使Swagger-UI没用的。此外,这是您不想删除的东西,因为它正被框架本身使用。

    请参阅此处,获取所有支持的属性列表,以自定义Springdoc的行为。

  •  类似资料:
    • 我已经安装node.js.节点似乎工作正常,但是,没有找到npm,如下所示。 我尝试了多种解决方案,如所介绍的: 1-Windows-安装node.js但找不到npm 2-安装节点。Windows 10上的js(和npm) 我不知道下一步该怎么办 谢谢你的协助 下面是路径下的变量 如下所示,我使用了

    • 我必须为python中的一个项目导入numpy,我被告知只需在CMD提示符(pip install numpy)中安装它。它说它已安装,但当我尝试在python中导入它时,它说:没有名为“numpy”的模块。我做错了什么,或者如何修复?

    • 问题内容: 我刚刚在Windows Vista上安装了JDK。之后,我为4个环境变量设置了适当的值:classpath,include,lib,path。之后,我可以编译我的HelloWorld程序(我得到了* .class文件)。但是,当我尝试执行已编译的程序(我键入java HelloWorldApp)时,它不起作用。Java写了很多东西,最后写成“找不到主类:HelloWorldApp”。请

    • 问题内容: 我的代码中发生了一些不可思议的事情。这是Bean的代码段: 这是我的查看代码(标记文件)中的代码段 其中topic是Bean类型的对象。 这是错误: 还有一件事要考虑。蚀产生的二传手之间有细微的差别。显然,它也不喜欢cFrags这个名字。字段名称为cFrags,每隔一个设置器,我就会获得与该字段同名的参数,并使用约定对其进行设置。您会注意到,月食不符合此设置器的要求。 仅供参考:当我将

    • 问题内容: 我必须在Windows服务器上运行Python脚本。我怎么知道我拥有哪个版本的Python,它真的很重要吗? 我正在考虑将其更新为最新版本的Python。 问题答案: http://docs.python.org/using/cmdline.html#generic- options 可能也可以工作(在2.5版中引入)

    • Android Studio给了我一个弯弯曲曲的说法,我应该/可以把它变成一个lambda。我刚回到我的Android系统。 这是弯曲的“对象:PopupMenu.OnMenuItemClickListener”