Como documentar APIs com Swagger OpenAPI. Código Java com Spring Boot. Tutorial completo!

Поделиться
HTML-код
  • Опубликовано: 14 дек 2024

Комментарии • 64

  • @julielison
    @julielison 2 месяца назад

    Ótimo vídeo! Ajudou demais, tava tentando usar duas depências do Swagger que não tinham compatibilidade com as outras dependências (mesmo sendo a mais recente) e essa funcionou!

  • @L_emerson
    @L_emerson 8 месяцев назад

    Muito bom, estava tendo problemas com o swagger em um novo projeto com java 17, bombando agora!!!! vlw...😄

    • @javanauta
      @javanauta  8 месяцев назад +1

      Que bom que ajudei ☺️

  • @gilmarcossantos3951
    @gilmarcossantos3951 5 месяцев назад

    Ótimo vídeo! Estou Mobile, Front, Kotlin, e esse vídeo me ajudou a ter alguns entendimentos no que preciso.

    • @javanauta
      @javanauta  5 месяцев назад

      Legal fico feliz que tenha ajudado 😁

  • @prof.liniker
    @prof.liniker Год назад +1

    Putz, o Swagger é uma maravilha! Vídeo rápido e fácil, direto ao ponto. Vou recomendar.

  • @marcksuellopes8670
    @marcksuellopes8670 Год назад

    Muito bom o vídeo, os quem tem na internet estão super desatualizadas tava quebrando a cabeça aqui com um erro no swagger ai achei teu video e consegui resolver

    • @javanauta
      @javanauta  Год назад

      Obrigado pelo seu feedback positivo! Fico feliz em saber que o vídeo conseguiu te ajudar. Se precisar de mais ajuda ou tiver alguma sugestão para futuros vídeos, sinta-se à vontade para compartilhar. Ótimo dia!

  • @deividvieiraz
    @deividvieiraz Год назад

    Javanauta MUITO obrigado por esse vídeo, me salvou demais, estava há horas tentando e não estava conseguindo, deixo aqui minha total admiração pelo seu trabalho!

  • @natsugamehd6328
    @natsugamehd6328 10 месяцев назад

    Ótimo vídeo, aprendi muito! Continue espalhando conhecimentos

    • @javanauta
      @javanauta  10 месяцев назад

      Muito obrigada. Fico feliz que tenha te ajudado 🥰

  • @laurohenriquesantanadefrei5283
    @laurohenriquesantanadefrei5283 3 месяца назад

    Teus videos são ótimos, tu tem uma ótima didatica!

    • @javanauta
      @javanauta  3 месяца назад

      Muito obrigado 😃

  • @Marceliino1
    @Marceliino1 3 месяца назад +1

    Você aidivinhou que eu estava precisando? Quando fui digitar pra pesquisar...o seu video já estava do lado na lista
    ;)

    • @javanauta
      @javanauta  3 месяца назад

      Haha legal, já tem uma versão com security aqui no canal: ruclips.net/video/kOy2U8GrXCA/видео.htmlsi=Ua0UpQtHta82jSHj

  • @ViniciusPSilva-cj5du
    @ViniciusPSilva-cj5du 6 месяцев назад

    Vídeo incrível, amei a didática, parabéns pelo conteúdo 🎉🎉🎉

    • @javanauta
      @javanauta  6 месяцев назад

      Ola, fico muito feliz que tenha gostado 😁 obrigada ☺️

  • @pedroviniciusmeerholz9421
    @pedroviniciusmeerholz9421 Год назад

    Value demais, consegui documentar minha API sem problemas.

  • @alexandre_noguez
    @alexandre_noguez Год назад +1

    Parabéns pelo vídeo! Muito explicativo e bem didático. Adorei! Se aceitar uma sugestão de vídeo poderia ser boas práticas em projetos spring! Abraços

  • @paulocaetano3786
    @paulocaetano3786 Год назад

    Excelente vídeo, é bem didático. Parabéns pelo canal

    • @javanauta
      @javanauta  Год назад +2

      Obrigada, fico feliz que tenha gostado.

  • @IagoBicalhoMuciaccia
    @IagoBicalhoMuciaccia Год назад

    Muito bom o video parabens, vi que seu canal nao tem muito tempo. A dica que eu te dou seria fazer os videos para 4k.

  • @maurodeboni
    @maurodeboni Год назад +1

    Video excelente, muito didático! Valeu demais!!

    • @javanauta
      @javanauta  Год назад +1

      Fico feliz que tenha gostado. Obrigada!

  • @matheusenrico9779
    @matheusenrico9779 Год назад

    Ótimo vídeo, parabéns! Seria interessante se você fizesse um vídeo explicando mais de como manipular arquivos!

  • @MarcosGuerreiroRebelo
    @MarcosGuerreiroRebelo Год назад

    Muito bom o seu conteúdo! Parabéns!

  • @renegutierrez5541
    @renegutierrez5541 4 месяца назад

    Muito obrigado pelo seu conteúdo 🥰🥰

    • @javanauta
      @javanauta  4 месяца назад +1

      Oiii fico feliz que tenha gostado do conteúdo 😃

  • @MarcioGadelha
    @MarcioGadelha Год назад

    Parabens! Video muito bem explicado, adorei sua didática. 👏

  • @victoriapaiva5584
    @victoriapaiva5584 Год назад +1

    Muito legal e didático. Arrasou muito! Só um ponto, é que a qualidade da imagem tá um pouco estranha, pq coloco em 1080p mas ainda fica ruim. Obrigada pela conteúdo!

    • @javanauta
      @javanauta  Год назад +1

      Que bom que gostou. E obrigada pela dica, com certeza vou prestar atenção nessa questão nos próximos.

  • @WellingtonRodriguesDeOlive-u7n

    Ótima explicação e conteúdo, me ajudou muito mesmo. Obrigado! 🥳🥳🥳🥳

  • @ryangustavo1687
    @ryangustavo1687 9 месяцев назад

    vídeo massa demais! 👏

  • @devdomato
    @devdomato Год назад

    Parabéns pelo vídeo.

  • @ymfeijo
    @ymfeijo 11 месяцев назад

    Ótimo vídeo!

  • @wellingtonsilva5149
    @wellingtonsilva5149 Год назад +1

    Tem como me dizer qual a mudança seria para o Spring Boot 3? acredito que existe alguma mudança com a versão utilizada.

    • @javanauta
      @javanauta  Год назад +2

      Olá, para usar o OpenApi no Spring Boot 3 você precisa usar outra dependência: 'implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.0.2'', retirando a ' implementation 'org.springdoc:springdoc-openapi-ui:1.6.14''. O restante permanece igual.

  • @lucasmendesgonzales7877
    @lucasmendesgonzales7877 Год назад +1

    Caso eu esteja utilizando spring security, devo adicionar alguma permissão para poder acessar a swagger-ui ? Estou tendo problemas para acessar.

    • @javanauta
      @javanauta  Год назад +2

      Sim nas configurações do Spring security, assim
      protected void configure(HttpSecurity http) throws Exception {
      http.authorizeRequests()
      .antMatchers("/swagger-ui/**", "/v3/api-docs/**").permitAll()
      .anyRequest().authenticated()
      .and().
      .csrf().disable();
      }

    • @lucasmendesgonzales7877
      @lucasmendesgonzales7877 Год назад

      @@javanauta muito obrigado!

  • @em0drake
    @em0drake Год назад +2

    ensina como fazer usando spring security, por favor, to lutando aq pra documentar com spring

    • @MrBigsGamer
      @MrBigsGamer 11 месяцев назад

      eu também, esta complicado, descobriu aí? pode me ajudar?

  • @Ale_000
    @Ale_000 Год назад +1

    parabens!!

  • @pedroleondebritobarrosodec2043
    @pedroleondebritobarrosodec2043 8 месяцев назад

    obrigado!

    • @javanauta
      @javanauta  7 месяцев назад

      Ola, fico muito feliz que tenha gostado. Boa sorte e bons estudos 😁

  • @OSIELMESQUITADEOLIVEIRA
    @OSIELMESQUITADEOLIVEIRA Год назад

    Boa tarde, excelente vídeo. Como pegamos a versão do app?
    😁😁😁😁😁😁😁😁

    • @javanauta
      @javanauta  Год назад

      Fico feliz que tenha gostado do vídeo. Da uma olhada no código que está lá no meu GitHub, o link está na descrição do vídeo!

  • @mourafaell
    @mourafaell Год назад

    Muito didático seu conteúdo. Recentemente, tive um problema que me causou "trava" nos estudos. Precisava criar um endpoint que iria efetuar o registro de um novo cliente, salvando: nome, email, cpf, telefone, senha e foto de perfil. De modo que o endpoint recebesse os dados básicos do cadastro como json: nome, email, cpf, telefone e senha. E a foto de perfil fosse passado como MultiPartFile. Tentei fazer isso com o MultiPartFormData, contudo, a utilização no swagger deu errado, ficava retornando invalid media type 415.
    Você sabe como corrigir isso, ou como posso usar da melhor forma JSON + FILE? Já estou desesperadoooo kkkkkkkk
    PS: Chegaram a me sugerir de passar os dados do JSON como RequestParam na URL, mas achei meio bizarro. Pq dado à quantidade de informação para persistir for aumentando, vai ficar inviável manter isso na URL.
    Parabéns pelos conteúdos.

    • @javanauta
      @javanauta  Год назад +1

      Olá Rafael,
      tente da seguinte forma:
      @PostMapping(value ="/", consumes = {MediaType.MULTIPART_FORM_DATA_VALUE, MediaType.APPLICATION_JSON_VALUE})
      public List uploadDocuments(@RequestParam(value = "file", required = false) MultipartFile file, @RequestBody(required = false) SuaCLasseDTO dto)
      depois me diga se consegui ajudar!

    • @mourafaell
      @mourafaell Год назад

      @@javanauta Opaaa, valeu. Vou testar e te falo

  • @felipe-rodriguees
    @felipe-rodriguees Год назад

    Como funciona pra liberar esse ponto?, no caso estou usando Spring Security e eu libero a rota da url porém da acesso negado, poderia me ajudar?

    • @javanauta
      @javanauta  Год назад +1

      Ola, tudo bem? Uma das formas seria anotar a sua classe de configuração do Spring Security com: @SecurityScheme(
      name = "Bearer Authentication",
      type = SecuritySchemeType.HTTP,
      bearerFormat = "JWT",
      scheme = "bearer"
      )
      e a sua classe Controller ou a requisição que você quer exigir a autenticação com:
      @SecurityRequirement(name = "Bearer Authentication")
      Da uma olhada nessa documentação que mostra como usar essas anotações:
      www.baeldung.com/openapi-jwt-authentication
      Espero ter ajudado, se puder volta aqui depois e responde seu deu certo.

    • @felipe-rodriguees
      @felipe-rodriguees Год назад

      Deu certo, bem que a sra poderia fazer de spring security, esse do swagger está topissimo parabéns!!!

  • @Justreflections91
    @Justreflections91 Год назад

    foda

  • @thiagogoetten9351
    @thiagogoetten9351 Год назад +1

    Voce da Aulas?

    • @javanauta
      @javanauta  Год назад

      Oiii, não dou, mas se tiver alguma dúvida ou sugestão de vídeo manda aqui 😁

  • @thirbt
    @thirbt 3 месяца назад

    Caso estejam utilizando a versão 3.X do springboot é necessário colocar a seguinte dependência em seu POM:
    org.springdoc
    springdoc-openapi-starter-webmvc-ui
    2.0.2
    De resto continua as mesmas configurações e se por ventura sentir dificuldade no caminho fornecido automaticamente pela OpenAPI você pode configurar da seguinte forma em suas properties:
    springdoc.swagger-ui.path=caminho_desejado

    • @javanauta
      @javanauta  3 месяца назад +1

      @@thirbt oiiiii verdade, já tem um vídeo novo no canal com essa versão ☺️ruclips.net/video/kOy2U8GrXCA/видео.htmlsi=Ua0UpQtHta82jSHj

  • @jacksonemmerich
    @jacksonemmerich 9 месяцев назад +1

    deu esse erro: Error creating bean with name 'swaggerService': Injection of autowired dependencies failed; nested exception is java.lang.IllegalArgumentException: Could not resolve placeholder 'path.documents' in value "${path.documents}"
    abaixo meu local storage:
    documents: /home/jackson/Documentos/storage/

    • @javanauta
      @javanauta  9 месяцев назад

      ola, tente verificar se esse é o caminho correto do seu local storage. Se você clicar em propriedades na sua pasta vai encontrar o caminho para descrito para ela. Eu arriscaria dizer que é a barra final que está sobrando. Ex: /home/jackson/Documentos/storage
      espero ter ajudado, me diga aqui depois se conseguiu.

    • @Bastardovl
      @Bastardovl 9 месяцев назад

      @@javanauta não entendi, tentei alterar no application-dev.yml
      ________________________________________________________ de:
      spring:
      application:
      name: swagger
      path:
      documents: /home/angelicaweiler/Documentos/Angelica/diretorio
      ________________________________________________________ para:
      spring:
      application:
      name: swagger
      path:
      documents: C:\Users\meuNome\Desktop
      ______________________________________________________
      que foi onde salvei a pasta, mas não funcionou