Duvida com URLs no Vraptor

26 views
Skip to first unread message

Éderson Machado de Lima

unread,
Mar 12, 2013, 10:10:23 AM3/12/13
to caelum-...@googlegroups.com
Olá... estou com um probleminha simples aqui. Estou utilizando OAuth para integrar várias redes sociais na minha aplicação... No linkedin por exemplo, a url chamada após o usuário dar permissão para a aplicação é da seguinte forma

/users/linkedin/login?oauth_token=[TOKEN]&oauth_verifier=[VERIFIER]

Para isso fiz o controller da seguinte forma:

@Get ("/users/linkedin/login")
public void login(String oauth_token, String oauth_verifier)
{
       super.login(oauth_token, oauth_verifier);
}


Minha dúvida é como não ter um "_" no nome da variável, gostaria que elas fossem oauthToken e oauthVerifier.

É possível fazer isso?

Obrigado desde já.

Lucas Cavalcanti

unread,
Mar 12, 2013, 12:07:52 PM3/12/13
to caelum-...@googlegroups.com
É possível se vc sobrescrever um componente do VRaptor.

crie uma anotação (tipo @UnderscoreParams ou @Snakecase)
mude seu método para:
@Get ("/users/linkedin/login") @UnderscoreParams
public void login(String oauthToken, String oauthVerifier) {...}


e crie essa classe:
@Component
public class UnderscoreParameterNamesProvider extends ParanamerNameProvider {
     @Override
public String[] parameterNamesFor(AccessibleObject method) {
String[] names = super.parameterNamesFor(method);
if(method.isAnnotationPresent(UnderscoreParams.class)) {
//transforma essa lista de nomes de camelCase pra snake_case
}
return names;
}
}

2013/3/12 Éderson Machado de Lima <eder...@gmail.com>

--
You received this message because you are subscribed to the Google Groups "caelum-vraptor" group.
To unsubscribe from this group and stop receiving emails from it, send an email to caelum-vrapto...@googlegroups.com.
To post to this group, send email to caelum-...@googlegroups.com.
Visit this group at http://groups.google.com/group/caelum-vraptor?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.
 
 

Otávio Garcia

unread,
Mar 12, 2013, 2:19:47 PM3/12/13
to caelum-...@googlegroups.com
Ou usar o paranamer:

public void login(@Named("var_00") String oauthToken, @Named("var_01") String oauthVerifier) 



2013/3/12 Lucas Cavalcanti <lucasm...@gmail.com>

Chico Sokol

unread,
Apr 23, 2014, 2:17:35 PM4/23/14
to caelum-vraptor
Otávio, isso funciona? O @Named é de que pacote?



--
Chico Sokol

Otávio Garcia

unread,
Apr 23, 2014, 2:23:59 PM4/23/14
to caelum-...@googlegroups.com

Javax.inject

Connected with Motocast™

Chico Sokol

unread,
Apr 23, 2014, 2:58:03 PM4/23/14
to caelum-vraptor
Funciona mesmo :D

Achamos bizarro porque o não sabíamos se o vraptor q fazia isso e o Named é do cdi, mas quem faz a mágica é o próprio paranamer, né...



--
Chico Sokol

Otávio Garcia

unread,
Apr 23, 2014, 3:06:59 PM4/23/14
to caelum-...@googlegroups.com

Isso.

De uma olhada no PatanamerNameProvider. Encadeamos um named encima de um bytecode provider. Assim ele vê se tem o @named. Se tem retorna o valor dele, e se não  lê o bytecode da classe.

Um abraço

Connected with Motocast™

Reply all
Reply to author
Forward
0 new messages