Swagger 用于多个RESTFul服务的招摇过市UI

Swagger 用于多个RESTFul服务的招摇过市UI,swagger,swagger-ui,Swagger,Swagger Ui,我读到以下内容: Swagger目前没有建议从客户端或服务器的角度支持多个API版本。声明了版本控制信息(规范和底层API实现) 我想知道的是如何配置swagger UI以显示多个服务的API,即驻留在不同服务器上的服务。我尝试在不同的服务器上配置swagger UI,但出现以下错误: 无法从服务器读取。它可能没有适当的访问控制原点设置 我已经阅读了关于在服务器上启用CORS的内容,但在我的案例中,这并没有帮助,因为服务在liberty profile上运行 Swagger UI在WAS的本地运

我读到以下内容:

Swagger目前没有建议从客户端或服务器的角度支持多个API版本。声明了版本控制信息(规范和底层API实现)

我想知道的是如何配置swagger UI以显示多个服务的API,即驻留在不同服务器上的服务。我尝试在不同的服务器上配置swagger UI,但出现以下错误:

无法从服务器读取。它可能没有适当的访问控制原点设置

我已经阅读了关于在服务器上启用CORS的内容,但在我的案例中,这并没有帮助,因为服务在liberty profile上运行

Swagger UI在WAS的本地运行liberty配置文件上配置,服务在不同的WAS实例上运行


我的方向是为多个服务提供UI,但我认为这是一个逻辑起点。

看来Swagger 2规范很快就会允许这一点。看看某个似乎是贡献者的人的回答:

我们目前正在完成整理的能力 多个微服务集成到一个集合中,但最终,每个 微服务仍将是一个单一的文件

招摇过市谷歌集团中的同一人评论:

此人找到了一种方法,可以在同一个位置对多个Swagger 2定义进行分组:


最后,似乎Swagger 1将支持多个API基本路径。

看来Swagger 2规范很快就会允许这样做。看看某个似乎是贡献者的人的回答:

我们目前正在完成整理的能力 多个微服务集成到一个集合中,但最终,每个 微服务仍将是一个单一的文件

招摇过市谷歌集团中的同一人评论:

此人找到了一种方法,可以在同一个位置对多个Swagger 2定义进行分组:

最后,似乎Swagger 1将支持多个API基本路径。

请检查

这是一个新的API门户平台,在这方面做得很好。他们使用您的招摇过市的JSON并用它构建您的API门户。它们还具有本地RESTAPI集成,您可以在其中自动将API同步到门户

是他们用来演示如何托管多个API的示例门户

是他们的文档外观的一个示例。这就像是大摇大摆,但做得很好,提高了一个档次。

看看吧

这是一个新的API门户平台,在这方面做得很好。他们使用您的招摇过市的JSON并用它构建您的API门户。它们还具有本地RESTAPI集成,您可以在其中自动将API同步到门户

是他们用来演示如何托管多个API的示例门户


是他们的文档外观的一个示例。这就像大摇大摆的样子,但做得更好,更上一层楼。

我们在各种行业级API中看到的是,该版本正好进入了路径,v1是可选的

因此,如果您将“/path/resource”作为V1,那么您可以将“/v2/path/resource”作为v2,并且两者可以在所有版本的Swagger中愉快地共存

您提到您正在使用WebSphere Liberty,因此这里有另外两点可能会对您有所帮助:

  • 从2016年1月的测试版开始,WebSphere Liberty以本机方式支持CORS。您只需使用所需的CORS选项配置server.xml。文件如下:

    domain属性用于您希望应用此配置的应用程序根,这意味着它不会影响任何其他上下文根。其他7个属性完全遵循官方的CORS规范(),因此它们是非常不言自明的

    链接到测试版:

  • 由于您使用的是Swagger和Liberty,您应该查看Liberty的新API发现:

    基本上,在server.xml中打开apiscovery-1.0,服务器将自动处理JAXR(1.1或2.0)注释、Swagger注释和预生成的文档(META-INF/Swagger.json或META-INF/Swagger.yaml)。然后,您将能够看到/ibm/api/docs中的聚合文档和/ibm/api/explorer中的UI


  • 我们在各种行业级API中看到的是,版本直接进入路径,v1是可选的

    因此,如果您将“/path/resource”作为V1,那么您可以将“/v2/path/resource”作为v2,并且两者可以在所有版本的Swagger中愉快地共存

    您提到您正在使用WebSphere Liberty,因此这里有另外两点可能会对您有所帮助:

  • 从2016年1月的测试版开始,WebSphere Liberty以本机方式支持CORS。您只需使用所需的CORS选项配置server.xml。文件如下:

    domain属性用于您希望应用此配置的应用程序根,这意味着它不会影响任何其他上下文根。其他7个属性完全遵循官方的CORS规范(),因此它们是非常不言自明的

    链接到测试版:

  • 由于您使用的是Swagger和Liberty,您应该查看Liberty的新API发现:

    基本上,在server.xml中打开apiscovery-1.0,服务器将自动处理JAXR(1.1或2.0)注释、Swagger注释和预生成的文档(META-INF/Swagger.json或META-INF/Swagger.yaml)。然后,您将能够看到/ibm/api/docs中的聚合文档和/ibm/api/explorer中的UI