Предоставление документации Swagger-UI через Google Cloud Endpoints

Я пытаюсь опубликовать свои документы API в том же приложении Nodejs, что и мой API, используя конечные точки Google Cloud.

Следуя этому руководству, все выглядит просто: Добавление пользовательского интерфейса Swagger

Сложная часть заключается в раскрытии пути /docs через конечные точки Google Cloud (он также использует тот же путь openapi.yaml).

Я попытался определить путь /docs в моем openapi.yaml следующим образом:

"/docs":
    get:
      description: "Swagger UI API documentation"
      operationId: "docs"
      produces:
        - "text/html"
      responses:
        200:
          description: "Swagger UI"

Сама HTML-страница обслуживается, но какие-либо активы, такие как swagger-ui.css, не найдены.

Мне кажется, что я делаю это неправильно, поскольку документация не является конечной точкой API. Однако я не смог найти красивое решение. Есть ли способ проксировать весь трафик для пути /docs?


person jur    schedule 04.12.2017    source источник


Ответы (2)


Я думаю, вы обнаружите, что нет хорошего способа сделать это. Лучше всего будет отказаться от публикации документации как отдельного шага в конвейере развертывания. То, или ждать 6 месяцев. Google Cloud быстро развивается, и они, вероятно, включили это в свою дорожную карту.

person Randy L    schedule 04.12.2017

Вы можете попробовать создать дистрибутив пользовательского интерфейса Swagger в одном файле (index.html).

или вы можете добавить

x-google-разрешить: все

в вашем файле openapi.yaml, чтобы показать все пути, для которых еще не установлена ​​какая-либо форма проверки подлинности. Обратите внимание, что это позволит отображать все пути, следующие за базовым путем файла .yaml, в ваших конечных точках. (Например, если ваш базовый путь /api, то x-google-allow: all будет применяться только к путям, следующим за этим (т.е. /api/users)

Также см.: https://groups.google.com/forum/#!topic/google-cloud-endpoints/2h-2fotar9k

person Brunaldo    schedule 28.12.2017