Rest 具有多种服务的招摇过市用户界面

Rest 具有多种服务的招摇过市用户界面,rest,swagger,swagger-ui,Rest,Swagger,Swagger Ui,是否有一种方法可以“聚合”(或至少链接到)多个Swagger API以显示在单个UI上 假设我有两个服务,Foo和Bar,我想做的是创建第三个服务Baz,它为Foo和Bar提供元数据Foo、Bar和Baz将在不同的主机上,这就是为什么我不确定这是否可行的原因 一种解决方案是使用服务发现的思想(在本文中可能不是正确的术语),并在执行GET时将Baz-service链接到Foo和Bar GET / HTTP/1.1 Host: baz Accept: application/json ... 这

是否有一种方法可以“聚合”(或至少链接到)多个Swagger API以显示在单个UI上

假设我有两个服务,Foo和Bar,我想做的是创建第三个服务Baz,它为Foo和Bar提供元数据Foo、Bar和Baz将在不同的主机上,这就是为什么我不确定这是否可行的原因


一种解决方案是使用服务发现的思想(在本文中可能不是正确的术语),并在执行GET时将Baz-service链接到Foo和Bar

GET / HTTP/1.1
Host: baz
Accept: application/json
...

这就是我通常的做法,但我想知道是否有办法让Baz上的Swagger UI同时显示Foo和Bar的UI。

我最后做的是在
index.html
文件中,用一个下拉列表替换页面顶部的文本框,其中包含指向托管
Swagger.json
文件的各种服务器的链接

<div id='header'>
  <div class="swagger-ui-wrap">
    <a id="logo" href="http://swagger.io">swagger</a>
    <form id='api_selector'>

      <!-- Start of my changes -->

      <div class='input'>
        <select placeholder="http://example.com/api" id="input_baseUrl" name="baseUrl" type="text">
          <option value="http://foo/swagger.json">Foo</option>
          <option value="http://bar/swagger.json">Bar</option>
        </select>
      </div>

      <!-- End of my changes -->

      <div class='input'><input placeholder="api_key" id="input_apiKey" name="apiKey" type="text"/></div>
      <div class='input'><a id="explore" href="#" data-sw-translate>Explore</a></div>
    </form>
  </div>
</div>

福
酒吧

可以编写一个JavaScript脚本来与您的Eureka实例(或类似的东西)对话,以获取每个服务的url,并且下拉列表可以自动更新。我不是JavaScript或HTML专家,所以我不知道如何做到这一点,但我提到它是因为这是一种可能性。这将更有用,因此您无需在每次添加新服务时更新此文件。

我最后所做的是在
index.html
文件中,将页面顶部的文本框替换为一个下拉列表,其中包含指向托管
swagger.json
文件的各种服务器的链接

<div id='header'>
  <div class="swagger-ui-wrap">
    <a id="logo" href="http://swagger.io">swagger</a>
    <form id='api_selector'>

      <!-- Start of my changes -->

      <div class='input'>
        <select placeholder="http://example.com/api" id="input_baseUrl" name="baseUrl" type="text">
          <option value="http://foo/swagger.json">Foo</option>
          <option value="http://bar/swagger.json">Bar</option>
        </select>
      </div>

      <!-- End of my changes -->

      <div class='input'><input placeholder="api_key" id="input_apiKey" name="apiKey" type="text"/></div>
      <div class='input'><a id="explore" href="#" data-sw-translate>Explore</a></div>
    </form>
  </div>
</div>

福
酒吧
可以编写一个JavaScript脚本来与您的Eureka实例(或类似的东西)对话,以获取每个服务的url,并且下拉列表可以自动更新。我不是JavaScript或HTML专家,所以我不知道如何做到这一点,但我提到它是因为这是一种可能性。这将更有用,因此您不需要在每次添加新服务时更新此文件