Customizar url com vraptor

5 respostas
L

Pessoal,

Alguma abordagem para receber o id randômico na url?

@Path("/cliente/{cliente.id}")

em vez de receber client.id igual 1 receber um valor randômico

5 Respostas

pedruhenrik

olha não entendi o q vc quis dizer,

o guia de 1 minuto pode ajudar?

http://vraptor.caelum.com.br/documentacao/vraptor3-guia-de-1-minuto/

att,

L

pedruhenrik,

Só não quero que o id do cliente apareça na url e sim algum valor randômico.

ex:

/client/1 => /cliente/121243454

Ai recebo esse valor no controller e transformo no id do cliente.

Rafael_Guerreiro

Então vc usa o @Post("/cliente/") na anotação do método e coloca o parametro id sem estar na url…

-Edit-
Desculpe, me enganei, dai vc coloca o parametro id no método e nada na url…

Lucas_Cavalcanti

então lfcdtv, colocar algo aleatório não vai te ajudar mto :wink:

mas o que vc pode fazer é gerar um hash a partir do id do cliente que seja reversível.
[modo matematico on]
basta aplicar no id qualquer função que seja inversível.
assim vc gera a url com /clientes/${funcao(id)}

e no controller vc faz:

@Path("/clientes/{hash})
public void metodo(String hash) {
      Long id = funcaoInversa(hash);
}

essa função pode ser algo do tipo:

(id * 33 + 987)*47

daí a inversa seria:

(hash/47 - 987)/33

vc pode usar primos grandes pra multiplicar e gerar o hexadecimal do resultado. só cuidado pra não estourar o int/long

L

Valeu lucas, vou implementar aqui!

Criado 18 de agosto de 2011
Ultima resposta 20 de ago. de 2011
Respostas 5
Participantes 4