Для некоторых REST API, написанных на PHP, меня попросили создать документацию Swagger , и, поскольку я не знал ни одного простого способа добавления аннотаций к этим существующим API и создания такой документации, я использовал этот редактор для создания некоторых на данный момент.
Я сохранил файлы JSON и YAML, созданные с помощью этого редактора, и теперь мне нужно создать окончательную интерактивную документацию Swagger (это утверждение может показаться наивным и расплывчатым).
Может кто-нибудь, дайте мне знать, как я могу преобразовать файл спецификации Swagger JSON в актуальную документацию Swagger?
Я работаю на платформе Windows и ничего не знаю об Ant / Maven.
yaml
swagger
swagger-php
Салил
источник
источник
Ответы:
Я не был удовлетворен,
swagger-codegen
когда искал инструмент для этого, поэтому написал свой собственный. Взгляните на bootprint-swaggerОсновная цель по сравнению с
swagger-codegen
- обеспечить простую настройку (хотя вам понадобятся nodejs). И это должно быть легко адаптировать дизайн и шаблоны для собственных нужд, что является основным функционалом bootprint -projectисточник
spectacle
генерирует гораздо болееПопробуйте использовать redoc-cli .
Я использовал bootprint-OpenAPI , с помощью которого я генерирующий кучу файлов (
bundle.js
,bundle.js.map
,index.html
,main.css
иmain.css.map
) , а затем вы можете преобразовать его в один.html
файл с помощью HTML-инлайн для создания простогоindex.html
файла.Затем я обнаружил, что redoc-cli очень прост в использовании, а вывод действительно потрясающий, один красивый файл index.html .
Установка :
npm install -g redoc-cli
Использование :
redoc-cli bundle -o index.html swagger.json
источник
npx redoc-cli ...
более надежно.Проверить красивую хабар
Оно имеет
Я смотрел на редактор Swagger и думал, что он может экспортировать панель предварительного просмотра, но оказалось, что это невозможно. Так что я написал свою версию.
Полное раскрытие информации: я являюсь автором инструмента.
источник
allOf
в документе приводит к возникновениюundefined
даже в простейших сценариях («слияние» одного объекта, что эквивалентно отсутствию использованияallOf
вообще).allOf
для вас функцию. Проверить это.Все было слишком сложно или плохо документировано, поэтому я решил это с помощью простого скрипта swagger-yaml-to-html.py , который работает следующим образом
python swagger-yaml-to-html.py < /path/to/api.yaml > doc.html
Это для YAML, но его изменение для работы с JSON также тривиально.
источник
См. Проект swagger-api / swagger-codegen на GitHub; в проекте README показано, как использовать его для создания статического HTML. См. Создание статической документации html api .
Если вы хотите просмотреть swagger.json, вы можете установить пользовательский интерфейс Swagger и запустить его. Вы просто развертываете его на веб-сервере (в папке dist после клонирования репозитория из GitHub) и просматриваете пользовательский интерфейс Swagger в своем браузере. Это приложение на JavaScript.
источник
Я потратил много времени и перепробовал много разных решений - в итоге сделал так:
<html> <head> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/swagger-ui-dist@3.17.0/swagger-ui.css"> <script src="//unpkg.com/swagger-ui-dist@3/swagger-ui-bundle.js"></script> <script> function render() { var ui = SwaggerUIBundle({ url: `path/to/my/swagger.yaml`, dom_id: '#swagger-ui', presets: [ SwaggerUIBundle.presets.apis, SwaggerUIBundle.SwaggerUIStandalonePreset ] }); } </script> </head> <body onload="render()"> <div id="swagger-ui"></div> </body> </html>
Вам просто нужно, чтобы путь / к / my / swagger.yaml обслуживался из того же места.
(или используйте заголовки CORS)
источник
Вы также можете скачать интерфейс swagger по адресу : https://github.com/swagger-api/swagger-ui , взять папку dist, изменить index.html: изменить конструктор
const ui = SwaggerUIBundle({ url: ...,
в
const ui = SwaggerUIBundle({ spec: YOUR_JSON,
теперь папка dist содержит все, что вам нужно, и ее можно распространять как есть
источник
Взгляните на эту ссылку: http://zircote.com/swagger-php/installation.html
Если вам нужна другая помощь, не стесняйтесь спрашивать.
источник
Есть небольшая программа на Java, которая генерирует документы (adoc или md) из файла yaml.
Swagger2MarkupConfig config = new Swagger2MarkupConfigBuilder() .withMarkupLanguage(MarkupLanguage.ASCIIDOC) .withSwaggerMarkupLanguage(MarkupLanguage.ASCIIDOC) .withOutputLanguage(Language.DE) .build(); Swagger2MarkupConverter builder = Swagger2MarkupConverter.from(yamlFileAsString).withConfig(config).build(); return builder.toFileWithoutExtension(outFile);
К сожалению, он поддерживает только OpenAPI 2.0, но не OpenAPI 3.0 .
источник
Для Swagger API 3.0 генерация клиентского кода Html2 из онлайн-редактора Swagger отлично работает!
источник
Я нашел этот инструмент под названием api-html очень полезным. Он создает потрясающий пользовательский интерфейс html5 с множеством возможностей.
Есть варианты для создания онлайн или через инструмент cli .
Вот ссылка на демонстрационную сборку на "api-html": pets-demo
источник