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

如何组织/构建包含许多招摇过市定义的目录的招摇过市UI界面。json/。yml文件

通奕
2023-03-14

我试图通过Swagger UI记录在供应商产品(WSO2 ESB)中开发的现有API服务,以供公司内部使用。供应商产品不支持招摇过市。我计划以编程方式检查/处理API服务的源代码(编写在供应商产品中),并在中生成一个包含swagger定义文件的目录/文件夹/库。json或。yml格式。那很好,我能做到。

这些api定义文件中的每一个都将在swagger UI中很好地呈现,我正在考虑使用https://www.npmjs.com/package/swagger-ui.

我的问题是,我将最终得到大约100个这样的API定义文件,我想提供一些总体界面/页面,列出所有的API,然后将用户带到Swagger UI,当用户点击一个API定义时,加载特定的API定义的链接。这相当于打开我的本地swagger-ui,并在相关API定义的路径中手动键入/复制。如果我手动操作,这很好,我只是不希望用户必须手动操作。他们如何知道什么API定义url存在,为什么让他们手动键入/复制它们。

我看不出如何将"api定义ToLoad"参数传递到Swagger-ui,我想我要么找到一个,要么改变源来支持它。这个存在吗?

有没有更好的解决方案,要么自己开发,要么使用现有的包或解决方案?我更喜欢基于节点的解决方案,java也可以。

我做错了吗?

谢谢,马特。

共有2个答案

冉子石
2023-03-14

您正在寻找的东西可以通过基本的Swagger-ui工具轻松完成。

基本上,你所拥有的是一个列表,其中列出了许多招摇过市的定义。我猜您希望让用户单击按钮或链接,或者从下拉列表中选择定义以选择要查看的API。完成后,您可以执行以下操作:

>

  • 让用户选择要显示的API定义。你可以很容易地从添加一个超文本标记语言元素到你的index.html和触发一些javascript后选择
  • 单个swagger-ui容器可以重新加载和重复使用。从第一步获取swagger定义的URL,并将其提供给swagger-ui对象,通常是这样完成的:

    窗口。大摇大摆。updateSwaggerUi({url:'http://your.spec.com/swagger.yaml“})

    现在,容器将使用指定的规范重新加载。

  • 邢寒
    2023-03-14

    Swagger UI 3.0.19本机通过URL参数支持多个规范。使用URL时,顶部栏显示规格的下拉列表,而不是输入框。

    用法

    编辑dist\index。html和更改

    url: "http://petstore.swagger.io/v2/swagger.json",
    

    urls: [
       {name: "petstore",  url: "http://petstore.swagger.io/v2/swagger.json"},
       {name: "instagram", url: "https://api.apis.guru/v2/specs/instagram.com/1.0.0/swagger.yaml"}
    ],
    "urls.primaryName": "petstore",  // default spec
    


    现在,您的招摇过市UI顶部栏如下所示:

     类似资料:
    • 我试图在我的微服务项目中生成一个单独的招摇过市,在Api网关中将所有服务招摇过市聚合成一个单独的招摇过市。为了实现这一点,我将遵循下一个教程https://objectpartners.com/2017/09/28/aggregate-services-into-a-single-swagger 这里的问题是,当我尝试设置绝对URL时,我收到的输出是未能加载API定义。未定义的http://loc

    • 问题内容: 我正在尝试通过Swagger UI记录供公司内部使用的,由供应商产品(WSO2 ESB)开发的现有API服务。供应商产品不支持摇摇欲坠。我计划以编程方式检查/处理我的API服务的源代码(用卖方产品编写),并生成.json或.yml格式的swagger定义文件的目录/文件夹/库。很好,我可以做到。 这些API定义文件中的每一个都可以在swagger UI中很好地呈现,我正在使用https

    • 我的pom.xml 招摇过市配置 服务器日志 它说映射: 但这些都不起作用(404): 如果我使用sping-fox较低版本,那么我将在我的日志中得到它已映射{[/v2/api-docs}],方法=[GET]。但是,我看不到在那里生成的任何json。

    • 我一直试图让斯威格在NGINX反向代理后工作,但我就是做不好。我的服务在docker容器中运行,我希望使用以下示例URL访问它们: 我的服务: 昂首阔步: 我的嵌套位置块如下所示: 我的NGINX日志如下所示: 直接测试这一点,而无需通过NGINX,该过程将继续进行,并获得/v2/api和/swagger资源。在这之前,使用反向代理会被卡住。 对此有何建议? 编辑:这里是一个NGINX日志,当不尝

    • 我使用Springfox从Spring Boot REST控制器生成了Swagger API规范。 我注意到一个问题,示例值/模型无法显示响应。 作为调查,我在http://localhost:8080/v2/api-文档,并在https://editor.swagger.io/,它也无法显示示例值/模型。这似乎是由于模式没有正确引用模型对象(“Car”)造成的。 但是从Swagger的API文档

    • 我对使用SpringBoot和Springfox-boot-starter的swagger文档有一个问题。 我使用java.time.Instant java.util.Optio包裹 有没有办法让这个工作与可选的?感谢任何建议! Spring启动版本: Springfox-boot-starter版本