[Resolvido] - Vraptor - Rest - Header Http

2 respostas
Lord

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 !!

2 Respostas

Lucas_Cavalcanti

o VRaptor não tem ainda essa funcionalidade de receber headers diretamente nos controllers… Então o jeito que vc fez é o mais direto mesmo.

vc pode pedir essa funcionalidade:

Lord

Obrigado pelo esclarecimento Lucas.

Criado 11 de outubro de 2011
Ultima resposta 11 de out. de 2011
Respostas 2
Participantes 2