Изменение серверной переменной swagger-ui во время выполнения - PullRequest
0 голосов
/ 30 июня 2018

Используя конфигурацию openapi v3, у меня есть переменная сервера с именем 'hostname', которая используется для построения URL, например:

...
servers:
- url: http://{hostname}/api
 variables:
  hostname:
   "default": "some default here"
....

Во время выполнения я хотел бы иметь возможность изменять переменную сервера 'hostname'. Я нашел элемент пользовательского интерфейса на странице,

<input type="text" value="some default here" data-variable="hostname">

Изменение переменной путем редактирования поля ввода работает нормально, но изменение поля ввода с помощью jQuery не работает, даже если после установки значения вызывается событие «изменить», значение возвращается к нулю при расширении одного из разделов API. Я также попытался вызвать события keyup / keydown и focusin / focusout, чтобы лучше имитировать, как пользователь будет изменять поле.

Есть ли более хитрый подход к изменению этого значения посредством открытого вызова? Я просматривал window.ui, но это своего рода загадочно.

1 Ответ

0 голосов
/ 01 июля 2018

У меня есть файл api.yaml, размещенный на разных устройствах IoT. Каждое устройство будет иметь другое имя хоста в зависимости от его конфигурации. Когда страница загружена, я пытаюсь использовать javascript, чтобы установить переменную сервера hostname равной window.location.hostname, например, через javascript.

Вы можете просто указать относительный сервер url - он будет разрешен относительно расположения файла определения OpenAPI.

Например, если у вас есть

servers:
  - url: /api

, а файл определения API находится на

http://foobar/spec/api.yaml

тогда база url для вызовов API будет преобразована в

http://foobar/api
...