Mantendo o trabalho da Caelum em projetos open source, temos mais uma iniciativa, desta vez ligada a sistemas REST que implementam suporte a URI’s, protocolo HTTP e hypermedia.
O Restfulie, originalmente em Ruby e agora em Java, força a utilização das restrições do REST.
Eu gostaria de uma forma mais fácil (dinâmica?) de criar resources a partir de objetos. Não sou muito fã do jeito Ruby de expor o modelo de objetos da aplicação, mas criar outro modelo de objetos para mapear para resources tb não me agrada. Minha impressão é que objetos e resources não se combinam.
Não sei se peguei direito o problema. Você pode fazer:
public class Client {
private String name, date, id, ...;
}
public void find() {
Client client = ...; // busca no seu banco
result.from(client).serialize(); // esse eh o seu mapeamento para recurso == objeto
}
[/quote]
O problema em considerar que há um mapeamento 1:1 entre resources e objetos assume que vc quer representar o objeto da forma como ele existe na sua aplicação, apenas com uma “roupagem” de XML. Isto funciona numa aplicação simples ou se for criado um segundo modelo de objetos exclusivamente para ser mapeado para resources. Mas na medida que o que precisa ser representado (resources) difere do domínio (objetos) não vejo criar um segundo modelo de objetos uma boa solução. Talvez uma solução melhor nestes casos é usar o objeto como um protótipo para criação de resources que pode ser customizado independe do objeto original, neste caso o objeto != resource.
Concordo plenamente! Alguns momentos vai haver o mapeamento 1x1 e em outros momentos não.
Por isso que o Restfulie não assume esse mapeamento entre 1:1 entre resources e objetos: você serializa ou devolve o seu recurso: de onde ele veio, não importa.
Infelizmente não acho que tenha solução diferente do que você mencionou mesmo:
Dados N elementos em um espaco de origem e 1 elemento no espaço destino, se voce deseja transformar um em outro, precisa de uma função de transformacao… seguindo um padrão ou parametrizado.
No restfulie você pode fazer exatamente o que você comentou (criar o resource customizado independente do objeto original):
[quote=Guilherme Silveira]Concordo plenamente! Alguns momentos vai haver o mapeamento 1x1 e em outros momentos não.
Por isso que o Restfulie não assume esse mapeamento entre 1:1 entre resources e objetos: você serializa ou devolve o seu recurso: de onde ele veio, não importa.
Infelizmente não acho que tenha solução diferente do que você mencionou mesmo:
Dados N elementos em um espaco de origem e 1 elemento no espaço destino, se voce deseja transformar um em outro, precisa de uma função de transformacao… seguindo um padrão ou parametrizado.
No restfulie você pode fazer exatamente o que você comentou (criar o resource customizado independente do objeto original):
Da pra utilizar a API cliente & servidor para manipular os headers HTTP? Não encontrei uma maneira de fazer isso usando o Restfulie, o que preciso fazer?