Salve galera !
Estou implementando uma camada de serviços utilizando o Vraptor na versão 3.1.2. Criei serviços de consultas e atualizações sem problemas, porém ao tentar construir um serviço que recebe parâmetros no Header da requisição Http encontrei alguns “problemas”.
Primeiramente criei um serviço na mesma estrutura do exemplo abaixo :
@Resource
@Path("/services/")
public class ServiceImpl implements Service {
private Result result;
public ServiceImpl(Result result) {
this.result = result;
}
@Get
@Path("autenticarUsuario")
public void autenticarUsuario(@HeaderParam("login") String login , @HeaderParam("senha") String senha ) {
AutenticarModel model = serviceAutenticar.autenticarUsuario(login,senha);
result.use(json()).from(model).serialize();
}
}
Com este código não foi possível recuperar os dados passados no Header. Então fiz alterações na minha classe ficando desta forma :
@Resource
@Path("/services/")
public class ServiceImpl implements Service {
private Result result;
private HttpServletRequest request;
public ServiceImpl(Result result , HttpServletRequest request) {
this.result = result;
this.request = request;
}
@Get
@Path("autenticarUsuario")
public void autenticarUsuario() {
AutenticarModel model = serviceAutenticar.autenticarUsuario(request.getHeader("login"),request.getHeader("senha"));
result.use(json()).from(model).serialize();
}
}
Desta forma funcionou , porém minhas dúvidas são: - Estou utilizando os recursos do Vraptor da maneira correta ? Não tem alguma forma de abstrair estas manipulações dos dados de uma requisição Http ?
Obrigado galera !!