Как добавить опцию в <redoc>? - PullRequest
       19

Как добавить опцию в <redoc>?

0 голосов
/ 11 октября 2018

Я хочу добавить дополнительную опцию в мой ReDoc.Для текущей реализации я использую файл json, который генерируется из Swagger, и он добавлен в html-страницу.Пример, как это делается:

  <body>
    <redoc spec-url='http://petstore.swagger.io/v2/swagger.json'></redoc>
    <script src="https://cdn.jsdelivr.net/npm/redoc@next/bundles/redoc.standalone.js"> </script>
  </body>

Я использую это как справочную документацию: https://github.com/Rebilly/ReDoc

Как я могу добавить опционный объект в тег и не использовать объект ReDoc?И как я могу использовать расширение продавца, например, x-logo?В документации это устанавливается через файл json, но мой файл json автоматически генерируется из Swagger.

Ответы [ 2 ]

0 голосов
/ 19 октября 2018

Вы просто размещаете опции после spec-url в теге redoc следующим образом:

<body>
    <redoc spec-url='http://petstore.swagger.io/v2/swagger.json' YOUR_OPTIONS_HERE></redoc>
    <script src="https://cdn.jsdelivr.net/npm/redoc@next/bundles/redoc.standalone.js"> </script>
</body>

в этом примере в репозитории ReDoc вы можете проверить это (строка 22 на данный момент):

https://github.com/Rebilly/ReDoc/blob/master/config/docker/index.tpl.html#L22

Важно:

Не забывайте "шашлык с опциями ReDoc" , например, если ваши варианты:

hideDownloadButton noAutoAuth disableSearch

YOUR_OPTIONS_HERE

должно быть (после оболочки в шашлыке):

hide-download-button no-auto-auth disable-search

Ваше тело с этими параметрами становится таким:

<body>
    <redoc spec-url='http://petstore.swagger.io/v2/swagger.json' hide-download-button no-auto-auth disable-search></redoc>
    <script src="https://cdn.jsdelivr.net/npm/redoc@next/bundles/redoc.standalone.js"> </script>
</body>

Надеюсь, оно будет вам полезно.

0 голосов
/ 12 октября 2018

ReDoc имеет расширенную инициализацию с помощью Redoc.init, поэтому вы можете загрузить спецификацию вручную и добавить некоторую постобработку (например, добавить x-logo).

Можно передать параметры ReDocв качестве второго аргумента Redoc.init:

<body>
  <div id="redoc"></div>
  <script src="https://cdn.jsdelivr.net/npm/redoc@next/bundles/redoc.standalone.js"> </script>
  <script>
    fetch('http://petstore.swagger.io/v2/swagger.json')
      .then(res => res.json())
      .then(spec => {
        spec.info['x-logo'] = { url: "link/to/image.png" };
        Redoc.init(spec, {
        // options go here (e.g. pathInMiddlePanel)
        }, document.getElementById('redoc'));
      });
</body>

ПРИМЕЧАНИЕ: Для этого требуется, чтобы Fetch API был доступен в браузерах, поэтому он не будет работать в IE11.

...