首页 文章

用于多个RESTFul服务的Swagger UI

提问于
浏览
1

我读了以下here

Swagger目前不包含从客户端或服务器角度支持多个API版本的建议 - 声明版本信息(规范和底层API实现) .

我想知道的是如何配置swagger UI来显示多个服务的API,即驻留在不同服务器上的服务 . 我尝试在另一台服务器上配置swagger UI,但是我收到以下错误:

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

我已经阅读了关于在服务器上启用CORS的内容,但是在我的情况下,由于服务在自由配置文件上运行,因此无效 .

Swagger UI在WAS的本地运行的自由配置文件上配置,并且服务在不同的WAS实例上运行 .

我要移动的方向是拥有多个服务的UI,但我认为这是一个合乎逻辑的起点 .

3 回答

  • 5

    似乎Swagger 2规格很快就会允许这样做 . 看看这个似乎是贡献者的回复:

    我们目前正在最终确定将多个微服务整理到一个集合中的能力,但最终,每个微服务仍然只是一个文件 .

    https://stackoverflow.com/a/26917653/3389881

    同一个人在Swagger Google小组中发表评论:https://groups.google.com/forum/#!topic/swagger-swaggersocket/H7dsSd6VPvM

    此人已经找到了在同一个地方对多个Swagger 2定义进行分组的方法:http://utility-stack.apievangelist.com/index.html

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

  • 0

    看看DynamicApis.com .

    它是一个新的API门户平台,可以很好地完成这项工作 . 他们使用您的Swagger JSON并构建您的API门户 . 它们还具有本机REST API集成,您可以自动将API同步到门户 .

    Here是一个示例门户,他们必须展示如何托管多个API .

    Here是他们的文档的样子的一个例子 . 这就像招摇,但已经完成并占据了一席之地 .

  • 0

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

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

    您提到您正在使用WebSphere Liberty,因此这里有两个可能对您有帮助的要点:

    domain属性适用于您希望此配置应用于的应用程序根目录,这意味着它不会影响任何其他上下文根 . 其他7个属性完全遵循官方的CORS规范(https://www.w3.org/TR/cors/),因此它们非常自我解释 .

    链接到测试版:https://developer.ibm.com/wasdev/downloads/liberty-profile-beta/

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

相关问题