2016-01-11 5 views
0

Есть ли способ «объединить» (или хотя бы ссылку) несколько API Swagger для отображения на одном пользовательском интерфейсе?Интерфейс Swagger с несколькими службами

Скажем, у меня есть две службы, Foo и Bar, то, что я хочу сделать, это сделать третью службу, Baz, которая предоставляет метаданные для Foo и Bar. Foo, Bar и Baz будут на разных хостах, поэтому я не уверен, что это возможно.


Одним из решений является использование идеи открытия сервиса (возможно, не правильный термин в данном контексте) и имеют Баз служат ссылки на Foo и Bar, когда выполняется GET.

GET/HTTP/1.1 
Host: baz 
Accept: application/json 
... 
HTTP/1.1 200 OK 
Content-Type: application/json 
... 

{ 
    "services": [ 
     { 
      "name": "foo", 
      "link": "http://foo" 
     }, 
     { 
      "name": "bar", 
      "link": "http://bar" 
     } 
    ] 
} 

Это, как я бы подойти к этому нормально, но мне интересно, если есть способ, чтобы иметь Кураж UI на Baz показать интерфейс для обоих Foo и Bar.

ответ

4

Что я в итоге сделал в файле 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, поэтому я не знаю, как это сделать, но я упоминаю об этом, потому что это возможность. Это было бы более полезно, поэтому вам не нужно обновлять этот файл каждый раз при добавлении новой службы.

Смежные вопросы