sexta-feira, 7 de outubro de 2016
REST - Como passar um parâmetro que contém ponto (.) pela Url com Spring Mvc
Esse post é curto, somente para dar uma dica de como fazer para que seu controller entenda um parâmetro que possui (.) ponto e não quebre.
Alguns casos precisamos no get buscar algo que seja filtrado por determinado parâmetro, por exemplo quando buscamos um usuário, uma Url basicamente ficaria assim:
GET "/user/{username}"
O problema é quando esse essa variável que é passada na uri possui um ponto, que ocasiona a quebra do valor. Ex
GET "/user/tiago.ribeiro"
O spring entenderia que foi passado somente "tiago" descartando então tudo que vem após o (.). Existem algumas estrategias para burlar isso, como colocar outro nome após o username do seu path, por exemplo:
GET "/user/{username}/search"
Assim ele não descartaria o que viesse após o ponto. Existe uma outra maneira e que na minha opinião é a mais elegante que seria a inserção de (:.+) após a declaração do parâmetro.
GET "/user/{username:.+}"
Dessa maneira o Spring entenderá que o ponto faz parte do parâmetro passado e não quebrará.
Bem como falei esse post foi curto, espero que tenham gostado.
Assinar:
Postar comentários (Atom)
Show de bola !! Obrigado por compartilhar este conhecimento Tiago !!
ResponderExcluir