Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Múltiplos endpoints

Olá!

Gostaria de perguntar sobre mapeamento de URLs.

Exemplo:

Tenho uma classe que é responsável pelos endpoints relacionadas à empresas. Para isso, eu anotei a classe com

@RequestMapping("/api/v1/empresa")

Agora, se eu vou fazer os endpoints relacionados à um usuário, eu anotaria com

@RequestMapping("/api/v1/usuario")

E não creio que isso daria certo, afinal me retorna um 404!

Mesmo se funcionasse, ficaria repetitivo, então, poderiamos colocar como já parte do contexto lá no application.properties. Todavia, meus endpoins de login seguem outra estrutura (e, assim, isso não poderia ser parte do root context)

@RequestMapping("/auth/v1/login")

O que pode ser feito?

3 respostas
solução!

Boa tarde, Leonardo! Como vai?

Nesse caso, o ideal seria vc fazer todas as suas URLs terem a mesma parte inicial:

/api/v1/empresa
/api/v1/usuario
/api/v1/auth/login

Dessa forma vc pode encapsular e centralizar a parte /api/v1 que é comum a todas as URLs!

Fugindo um pouco do assunto, veja que na URL /api/v1/auth/login o ideal, seguindo as boas práticas do REST, seria remover o path /login e dar preferência à utilização dos verbos HTTP da seguinte forma:

POST /api/v1/auth - login
DELETE /api/v1/auth - logout

Pegou a ideia? Qualquer coisa é só falar!

Grande abraço e bons estudos, meu aluno!

Fantástico! Gostei, vou adequar minha API.

Uma dúvida: Como eu posso "encapsular e centralizar a parte /api/v1"? É algo no application.properties?

Opa, Leonardo!

Uma dúvida: Como eu posso "encapsular e centralizar a parte /api/v1"? É algo no application.properties?

Isso aí, a ideia é seguir exatamente a sua própria sugestão dada inicialmente de colocar a parte comum da URL no application.properties! Tudo que eu fiz foi só reorganizar a URL do login para ela ter compatibilidade com as outras!

Para saber mais: https://stackoverflow.com/questions/32927937/how-to-set-base-url-for-rest-in-spring-boot/41321286

Qualquer coisa é só falar!

Grande abraço e bons estudos, meu aluno!