Где пример строки ответа генерируется в файлах swagger? - PullRequest
0 голосов
/ 05 ноября 2018

У меня есть вызов API, который я хочу предложить вернуть как читаемый человеком текст (против json), если отправитель устанавливает заголовок Accept на text/plain. Текст возврата будет иметь разрывы строк, поэтому я хочу точно представить шаблон текста возврата в документах Swagger.

Я использую статические файлы swagger с файлом .yaml, который я обновляю для каждой конечной точки по мере ее записи. Эти файлы находятся в папке docs и используются для страниц github.

Грубый пример конечной точки, как описано в файле .yaml:

  /healthcheck:
    get:
      tags:
      - tests
      summary: Returns ALIVE if all tests pass, failures if not
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
               type: string
               example: ALIVE
        '412':
          description: Precondition Failed (one or more health checks failed)
          content:
            text/plain:
              schema:
                type: string
                example: "\n>ERRORS\nError1: <msg>\n..."

Основная проблема заключается в том, что swagger (я предполагаю) помещает текст примера в промежуток и игнорирует разрывы строк. Я пытался заменить \n на <br> и <br />, но безрезультатно. Я также пытался

example: |
  ERRORS
  "Error connecting to redis: <errormsg>"

без успеха. Он чтит буквально кавычки, но все равно игнорирует разрывы строк.

Я знаю, что промежуток будет поддерживать разрывы строк, потому что если я проверю страницу, то уже смогу увидеть <br>:

<span style="color: rgb(107, 107, 107); font-style: italic;">
<br>
<!-- react-text: 309 -->example<!-- /react-text -->
<!-- react-text: 310 -->: <!-- /react-text -->
<!-- react-text: 311 --><br>ERRORS<br>Error1: &lt;msg&gt;<br>...
<!-- /react-text -->
</span>

Он чтит первые <br>, но не те, что в блоке react-text.

Короче говоря, если я смогу найти, где они создают этот блок span в файлах swagger (куча файлов .css, .js .js.map), я, вероятно, могу изменить его так, чтобы он соблюдал разрывы строк в одну сторону или другой. Но файлы - это путаница многостраничных однострочных текстов, и я их не понимаю.

Где находится кусок кода, который отвечает за создание блока html для content-> text / plain-> schema, type string-> example? (или, альтернативно, есть другой способ принудительного разрыва строки в примере строки)

...