Para algumas APIs REST escritas em PHP, fui solicitado a criar documentação Swagger e, como não conhecia nenhuma maneira fácil de adicionar anotações a essas APIs existentes e criar tal documentação, usei este editor para gerar algumas por agora.
Salvei os arquivos JSON e YAML criados usando esse editor e agora preciso criar a documentação interativa final do Swagger (esta declaração pode parecer ingênua e vaga).
Alguém pode me dizer como posso converter o arquivo de especificação Swagger JSON em documentação real do Swagger?
Estou na plataforma Windows e não conheço nada sobre o Ant / Maven.
yaml
swagger
swagger-php
Salil
fonte
fonte
Respostas:
Não fiquei satisfeito
swagger-codegen
quando estava procurando uma ferramenta para fazer isso, então escrevi minha própria. Dê uma olhada no bootprint-swaggerO objetivo principal em comparação com
swagger-codegen
é fornecer uma configuração fácil (embora você precise do nodejs). E deve ser fácil de se adaptar styling e modelos para suas próprias necessidades, que é uma funcionalidade central do bootprint -projectfonte
spectacle
gera uma documentação muito mais bonita do swagger JSONTente usar redoc-cli .
Eu estava usando bootprint-AbraAPI pelo qual eu estava gerando um monte de arquivos (
bundle.js
,bundle.js.map
,index.html
,main.css
emain.css.map
) e, em seguida, você pode convertê-lo em um único.html
arquivo usando html-inline para gerar um simplesindex.html
arquivo.Então eu achei redoc-cli muito fácil de usar e a saída é realmente incrível, um único e bonito arquivo index.html .
Instalação :
npm install -g redoc-cli
Uso :
redoc-cli bundle -o index.html swagger.json
fonte
npx redoc-cli ...
é mais confiável.Dê uma olhada em um estilo bonito
Tem
Eu estava olhando para o Editor Swagger e pensei que ele poderia exportar o painel de visualização, mas descobri que não pode. Então, escrevi minha própria versão disso.
Divulgação completa: eu sou o autor da ferramenta.
fonte
allOf
no documento produzundefined
, mesmo nos cenários mais simples ("mesclar" um único objeto, equivalente a não usar deallOf
todo).allOf
recurso para você. Confira.Tudo estava muito difícil ou mal documentado, então resolvi isso com um script simples swagger-yaml-to-html.py , que funciona assim
python swagger-yaml-to-html.py < /path/to/api.yaml > doc.html
Isso é para YAML, mas modificá-lo para funcionar com JSON também é trivial.
fonte
Veja o projeto swagger-api / swagger-codegen no GitHub; o projeto README mostra como usá-lo para gerar HTML estático. Consulte Gerando documentação de API de html estática .
Se você deseja visualizar o swagger.json, pode instalar a IU do Swagger e executá-lo. Basta implantá-lo em um servidor da web (a pasta dist depois de clonar o repo do GitHub) e visualizar a IU do Swagger em seu navegador. É um aplicativo JavaScript.
fonte
Passei muito tempo e tentei várias soluções diferentes - no final, fiz desta forma:
<html> <head> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/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>
Você só precisa ter path / to / my / swagger.yaml servido no mesmo local.
(ou use cabeçalhos CORS)
fonte
Você também pode baixar o swagger ui em: https://github.com/swagger-api/swagger-ui , pegue a pasta dist, modifique index.html: altere o construtor
const ui = SwaggerUIBundle({ url: ...,
para dentro
const ui = SwaggerUIBundle({ spec: YOUR_JSON,
agora a pasta dist contém tudo o que você precisa e pode ser distribuída como está
fonte
Dê uma olhada neste link: http://zircote.com/swagger-php/installation.html
Se precisar de outra ajuda, sinta-se à vontade para perguntar.
fonte
Existe um pequeno programa Java que gera documentos (adoc ou md) a partir de um arquivo 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);
Infelizmente, ele só oferece suporte a OpenAPI 2.0, mas não a OpenAPI 3.0 .
fonte
Para Swagger API 3.0, gerar código de cliente Html2 a partir do Editor Swagger online funciona muito bem para mim!
fonte
Eu encontrei esta ferramenta chamada api-html muito útil. Ele está gerando uma interface de usuário em html5 incrível com muitas possibilidades.
Existem opções para gerar online ou por meio da ferramenta CLI .
Aqui está um link para a versão de demonstração em "api-html": pets-demo
fonte