Преобразование спецификации Swagger JSON в документацию HTML
для некоторых REST API, написанных на PHP, меня попросили создать чванство документация, и поскольку я не знал о каком-либо простом способе добавления аннотаций к этим существующим API и создания такой документации, я использовал редактор, чтобы сгенерировать сейчас.
Я сохранил файлы JSON и YAML, созданные с помощью этого редактора, и теперь мне нужно создать окончательную интерактивную документацию Swagger (это утверждение может показаться наивным и смутный.)
может кто-нибудь, пожалуйста, дайте мне знать, как я могу преобразовать файл спецификации Swagger JSON в фактическую документацию Swagger?
Я на платформе Windows и ничего не знаю о Ant/Maven.
9 ответов
Я не был доволен swagger-codegen
когда я искал инструмент для этого, поэтому я написал свой собственный. Взгляните на отпечаток ботинка-swagger
главная цель по сравнению с swagger-codegen
обеспечить легкую установку (хотя вам понадобится nodejs).
И должно быть легко адаптировать стиль и шаблоны к вашим собственным потребностям, что является основной функциональностью bootprintпроект
проверить довольно-swag
Это
- похожий вид, как Swagger-Редактор правая панель
- Поиск / Фильтр
- Схема Складывания
- Живой Отклик
- вывод в виде одного html-файла
Я смотрел на Редактор Swagger и думал, что он может экспортировать панель предварительного просмотра, но оказалось, что это невозможно. Поэтому я написал свою версию.
полный Раскрытие информации: я автор инструмента.
посмотреть swagger-api / swagger-codegen проект на GitHub; проект README показывает, как использовать его для создания статического HTML. См.создание статической документации html api.
Если вы хотите просмотреть чванство.json вы можете установите Swagger UI и запустить его. Вы просто развертываете его на веб-сервере (папка dist после клонирования РЕПО из GitHub) и просматриваете пользовательский интерфейс Swagger в своем браузере. Это приложение JavaScript.
все было слишком сложно или плохо документировано, поэтому я решил это с помощью простого скрипта swagger-yaml-to-html.py, который работает следующим образом
python swagger-yaml-to-html.py < /path/to/api.yaml > doc.html
Это для YAML, но изменение его для работы с JSON также тривиально.
вы также можете скачать swagger ui из:https://github.com/swagger-api/swagger-ui, возьмите папку dist, измените индекс.формат html: измените конструктор
const ui = SwaggerUIBundle({
url: ...,
на
const ui = SwaggerUIBundle({
spec: YOUR_JSON,
теперь папка dist содержит все, что вам нужно, и может быть распространена как есть
попробуйте использовать redoc-cli.
Я был с помощью bootprint-openapi С помощью которого я создавал кучу файлов (bundle.js
, bundle.js.map
, index.html
, main.css
и main.css.map
), а затем вы можете преобразовать его в один .html
файл с помощью HTML-код-рядный для создания простого .
тогда я нашел redoc-cli очень прост в использовании и вывод действительно-2 awesome, a одинокий и красивый индекс.HTML-код.
установка:
npm install -g redoc-cli
использование:
redoc-cli bundle -o index.html swagger.json
Я потратил много времени и перепробовал много разных решений - в конце концов, я сделал это так :
<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>
вам просто нужно иметь path / to / my / swagger.и YAML подается из того же места.
(или использовать заголовки CORS)
посмотрите на эту ссылку:http://zircote.com/swagger-php/installation.html
- Скачать файл phar https://github.com/zircote/swagger-php/blob/master/swagger.phar
- Установить Composer https://getcomposer.org/download/
- сделать композитор.в JSON
- клон swagger-php / библиотека
- клон swagger-ui / библиотека
- создание ресурсов и моделей классов php для API
- выполните файл PHP для создания json
- дайте путь json в api-doc.в JSON
- дайте путь api-doc.JSON в индекс.php внутри папки swagger-ui dist
Если вам нужна другая помощь, пожалуйста, не стесняйтесь спрашивать.
есть маленький программы 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.