Springdoc openapi с webflux: отображать пользовательский файл json / yml вместо сгенерированного

У меня есть простой файл описания службы open-api.json:

{
  "openapi": "3.0.1",
  "info": {
    "title": "OpenAPI definition",
    "version": "v0"
  },
  "paths": {
    "/agents/{id}/plugins": {
      "post": {
        "tags": [
          "api-controller"
        ],
...
  },
  "components": {}
}

И я использую springdoc-openapi-webflux-ui в моем проекте Spring-webflux:

        <dependency>
            <groupId>org.springdoc</groupId>
            <artifactId>springdoc-openapi-webflux-ui</artifactId>
            <version>1.4.0</version>
        </dependency>

Можно ли отображать существующий файл вместо сгенерированного? Любая помощь, спасибо!


person Sasha Korkin    schedule 13.07.2020    source источник
comment
что ты хочешь? Вы хотите отобразить этот json в пользовательском интерфейсе swagger вместо красивого форматирования?   -  person Abhinaba Chakraborty    schedule 13.07.2020
comment
@AbhinabaChakraborty Я хочу, чтобы чванство использовало этот файл для создания html-страницы с описанием конечных точек. Я попытался поместить файл в / static и настроить webflux так, чтобы он искал ресурсы в этой папке, но это не работает.   -  person Sasha Korkin    schedule 13.07.2020
comment
Ok. Итак, ваш файл находится в каталоге src / main / resources / static? или где? (относительно корня проекта)   -  person Abhinaba Chakraborty    schedule 13.07.2020
comment
@AbhinabaChakraborty да   -  person Sasha Korkin    schedule 13.07.2020
comment
Привет, @SashaKorkin. Вы давно не задавали этот вопрос. Есть новости с вашей стороны? Вы попробовали ответ, который я дал?   -  person Abhinaba Chakraborty    schedule 22.07.2020


Ответы (2)


Итак, вот что вам нужно.

  1. В вашем каталоге src / main / resources создайте каталог с именем static. Внутри разместите файл open-api.json. (Примечание - имя файла json может быть любым) [Вот пример json-файла с открытой спецификацией API]
  2. Добавьте это свойство в yaml вашего приложения:
springdoc:
  swagger-ui:
    configUrl: /open-api.json

Затем запустите приложение и нажмите URL-адрес http: // localhost: 8080 / swagger-ui.html.

Обратите внимание, что при наличии пружинной защиты вам потребуется дополнительная настройка.

person Abhinaba Chakraborty    schedule 13.07.2020
comment
1. Как указать файл open-api.json, если есть файл application.properties, а не yaml приложения. 2. Должно ли быть имя open-api.json или это может быть что угодно? - person Ronnie; 23.07.2020

Если ваш файл содержит документацию OpenAPI в формате OpenAPI 3. Затем просто объявите: (Имя файла может быть любым, с момента согласования вашего объявления)

springdoc.swagger-ui.url=/open-api.json

Тогда файл open-api.json должен находиться в: src / main / resources / static.

Никакой дополнительной настройки не требуется.

Свойство springdoc.swagger-ui.configUrl можно использовать для различных целей, как описано здесь, поскольку структура отличается от

person brianbro    schedule 31.08.2020