-
Notifications
You must be signed in to change notification settings - Fork 574
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Adicionando pagina de documentação /docs #101
Conversation
This pull request is being automatically deployed with Vercel (learn more). 🔍 Inspect: https://vercel.com/brasilapi/brasilapi/1yoepu146 |
Rota DDD nao esta funcionando corretamente, acredito que por isso nao esta fazendo o deploy. |
Olá Carlos, estava vendo o projeto aqui e, apesar do arquivo |
Ola Wesley, vou modificar meu Pr aqui, valeu o toque .... E sim nao ta rodando mesmo... estranho ... |
Mestre @CarlosZiegler primeiamente obrigado pelo PR! 🚀 Tenho 2 pontos de atenção aqui: 2 - A build ta dando erro , eu até mandei rebuildar pra testar mas continua dando problema 😢
|
Oi @CarlosZiegler, parabéns pela iniciativa. Gostaria de elaborar um pouco mais no ponto 2 dado pelo @lucianopf: Isso parece ser um problema com SSR (server side rendering). Pela mensagem de erro parece que há uma tentativa de renderizar o component EDIT: Sendo o swagger um arquivo de documentação não seria mais interessante usar YAML? Acho que ficaria mais legível. O que você acha? |
Senhores, permitem que eu sugira uma alternativa ao SwaggerUI? Talvez, se a lib estiver dando dor de cabeça para publicar, possa ser uma alternativa. Seguem links: |
Opa, eu estava até o pescoço semana passada, essa semana vou dar uma olhadinha, mas bora implementar isso aí @RodriAndreotti que quero aprender a usar também hahah.. |
Cara, se eu te falar que o negócio é fácil demais para implementar vc acredita? Mas eu implementei nesse link aqui: https://neoedu.com.br/api-doc, caso queira dar uma olhada. |
@RodriAndreotti Sensacional esse REDOC, muito mais simples de implementar. Eu tomei a liberdade de pegar seu código do json e salvar aqui como exemplo para futuras implementações, pode ser? Estava dando um conflito de versão do lodash, eu arrumei no meu repo e mandei novamente. @lucianopf também exclui o arquivo yarn.lock, passou batido mesmo, bom que nas próximas eu me atento a isso. @otaciliolacerda Da uma olhada no que o @RodriAndreotti comentou, a implementação fica mais simples, pelo menos eu achei :) . @RodriAndreotti da uma olhada no meu PR e se tiver algo a arrumar, tome frente ai !!!! |
Cara, de minha parte, não há problema nenhum em usar o meu json, só peço para não publicar ele, pois não é de uma API pública, é do sistema da empresa que trabalho, porém o próprio site do redoc tem um json tbm para uso, caso queira disponibilizar publicamente ;-) Com relação ao PR, vou dar uma olhada mais tarde, eu queria pegar algo para desenvolver aqui tbm, mas estou tão corrido por esses dias que é capaz de eu pegar algo e terminarem antes de mim... kkk |
pages/api-doc/index.js
Outdated
import { RedocStandalone } from 'redoc'; | ||
import Documentation from './doc.json' | ||
|
||
export default function index2() { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Neste caso não seria melhor usar só index() para o nome da função?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sim @RodriAndreotti, arrumei ja, e sobre o arquivo, nao vou publicar nao, seria apenas para consulta mesmo, achei bem interessante e completo para estudos.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pode usar sim cara, sem problema, incluso, para gerar esse json eu usei um serviço chamado apimatic (https://www.apimatic.io/), na versão grátis ele permite modelar um API só, mas é suficiente às vezes. Ele permite importar modelos de json, de curl etc, e gera os endpoints prontos para vc só ajustar a documentação, depois de pronto é só exportar o json no formato openapi e usar no redoc (eles até tem um portal de documentação também, mas gostei mais do redoc, justamente por ser hospedado em nosso servidor)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Que massa, muito aprendizado nesse PR, valew mesmo as dicas e sinta-se a vontade de corrigir o PR :)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Opa... bom que deu para aprender alguma coisa, qualquer coisa é só gritar ;-)
package.json
Outdated
"next": "9.3.2", | ||
"react": "16.12.0", | ||
"react-dom": "16.12.0" | ||
"react-dom": "16.12.0", | ||
"redoc": "^2.0.0-rc.35", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
É ok utilizar versão alpha?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Cara, para ser sincero, eu acho que o dev não deve ter alterado os releases tags do repositório:
https://github.com/Redocly/redoc/tags
Pois todos estão como RC, mas com a experiência que tive, ele funciona sem problemas.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Vi que a versão anterior não suporta OpenAPI v3.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Eu estava fuçando o changelog dele aqui, e parece que o suporte básico rola desde 2017 já:
https://github.com/Redocly/redoc/blob/master/CHANGELOG.md#200-alpha1-2017-11-23
Não sei se faltou ele complementar algo nas especificações, mas, teoricamente teria suporte.
pages/api-doc/index.js
Outdated
@@ -0,0 +1,13 @@ | |||
import React from 'react' | |||
import { RedocStandalone } from 'redoc'; | |||
import Documentation from './doc.json' |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Eu sugiro utilizar YAML para tornar mais legível.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Por incrível que pareça eu acho o json mais legível, mas é só questão de opinião mesmo :-p
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
O exemplo que coloquei usando yaml
e OpenAPI v3 pode ser facilmente convertido para json
. O exemplo corrige algumas coisas do json
que peguei daqui.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Na realidade para o front não tem tanta diferença, acho que o redoc lê os dois sem problemas, vai da preferência de cada um mesmo, aliás, até o próprio swagger editor já consegue exportar como json, se quiser (incluso, convertendo de swagger 2 para openapi tbm)
Mas essas conversões automáticas nem sempre ficam 100%, então é legal dar uma revisada para garantir que está tudo certo.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ola pessoal, então queria saber uma coisa, no modelo que usei eu pego o Json e aponto no spec do componente redoc, com o Yaml seria a mesma coisa?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sim... a mesma coisa, pelo que sei ele lê os dois formatos, se vc pegar uma url de um yaml e jogar no demo online dele, é possível ver o funcionamento:
https://redocly.github.io/redoc/
pages/api-doc/doc.json
Outdated
"swagger": "2.0", | ||
"info": { | ||
"description": "Documentacao do Brasil API", | ||
"version": "1.0.5", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Não seria 1.0.0
(versão inicial)?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ja corrigi, valeu mesmo!!!
pages/api-doc/doc.json
Outdated
@@ -0,0 +1,127 @@ | |||
{ | |||
"swagger": "2.0", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Poderíamos utilizar a OpenAPI v3
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Concordo, se existe uma especificação um pouco mais recente, é sempre bom trabalhar para manter a compatibilidade por mais tempo.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ja alterei também, de acordo com o Yaml do @otacilio eu gerei um json, e atualizei o doc.json.
Peguei o JSON desse PR e converti para utilizar v3 e YAML: Exemplo Também tive que modificar alguns campos pois não passavam na validação do swagger editor. Talvez seja a diferença da v2 para v3. Para ter algo visual, basta copiar & colar o conteúdo do yaml no swagger editor |
@otaciliolacerda , converti seu documento Yaml para Json e coloquei no PR, pois achei mais simples de implementar. Da uma olhada se esta tudo OK. E obrigado pela ajuda, com a ajuda de vocês ficou muito bom e o melhor eu aprendi muito. Realmente muito obrigado a vocês dois. Se tiver algo errado por favor me corrijam, tomem frente no PR, melhor que contribuir é aprender! hahah |
Dúvida, a ideia é a rota ser No momento um deploy testavel ta aqui https://brasilapi-ls5vpzy2k.vercel.app/api-doc#tag/CEP! ^^ |
Bom, não sou o proprietário do PR, mas me parece melhor só /docs |
Bom dia, @lucianopf ja fiz a alteração para /docs. Realmente estava me baseando no que o @RodriAndreotti falou. |
package.json
Outdated
@@ -7,11 +7,15 @@ | |||
"axios": "0.19.2", | |||
"cep-promise": "3.0.9", | |||
"cidades-promise": "^1.2.3", | |||
"lodash": "^4.17.15", | |||
"core-js": "^3.6.5", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Um ponto que não é um block pra esse PR é tentar deixar as versões fixadas no package.json
pra evitar bumps considerados minors de dependências externas que podem quebrar o comportamento que esperamos.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Cara ficou muito bom seu PR, o único ponto de atenção é que a rota de DDD
está errada, mesmo que essa rota não esteja funcionando =[
pages/docs/doc.json
Outdated
} | ||
} | ||
}, | ||
"/cities/v1/ddd/{ddd}": { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Apesar dessa rota não estar funcionando, o endpoint correto é ddd/v1/{ddd}
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ola @murilohns . Eu ja resolvi isso pelo git mesmo, depois confere se atualizou ai ....
@CarlosZiegler is attempting to deploy a commit to the BrasilAPI Team on Vercel. A member of the Team first needs to authorize it. |
Fui ajeitar a branch pro merge e acabei fechando o PR e tirando os commits sem querer, mas não precisa se desesperar não @CarlosZiegler, eu já to desesperado por nós dois! Jaja corrijo isso :D |
Mas nem eh sexta feira ainda... hahaha |
Ola, aqui esta uma proposta para documentação com swagger, de acordo com a issue #14 .
Segue alguns screenshots da pagina docs:
OBS: Rota DD esta retornando erro.