Webservice REST - Disponibilizar Recursos
22/08/2016
0
Olá Pessoal!
Eu gostaria de saber se há alguma \"filosofia\" em webservices REST que determina qual é a granularidade da informação que devemos expor sobre um recurso. Para deixar mais claro, segue abaixo um exemplo.
Suponha que eu tenha os objetos Carro e Modelo, onde um carro tem um modelo. Ao implementar um GET \"/rest/carro/3\" eu tenho pelo menos duas possibilidades:
1 - Retornar os campos simples do objeto Carro e apenas o ID do modelo (ou link rest do objeto Modelo associado);
2 - Retornar o objeto Carro completo incluindo o objeto Modelo que está dentro dele;
Na primeira opção eu teria o problema de ter que fazer duas requisições ao servidor para ter o objeto completo, já na segunda opção eu poderia ter o problema de carregar informação de uma vez em excesso. Naturalmente coloquei um exemplo simples demais, mas em casos complexos vários objetos podem estar aninhados e contendo diversas listas, etc.
Enfim, alguém saberia apontar alguma direção sobre como tratam isso em seus projetos? Há algum direcionamento sobre esse tipo de questão?
Eu gostaria de saber se há alguma \"filosofia\" em webservices REST que determina qual é a granularidade da informação que devemos expor sobre um recurso. Para deixar mais claro, segue abaixo um exemplo.
Suponha que eu tenha os objetos Carro e Modelo, onde um carro tem um modelo. Ao implementar um GET \"/rest/carro/3\" eu tenho pelo menos duas possibilidades:
1 - Retornar os campos simples do objeto Carro e apenas o ID do modelo (ou link rest do objeto Modelo associado);
2 - Retornar o objeto Carro completo incluindo o objeto Modelo que está dentro dele;
Na primeira opção eu teria o problema de ter que fazer duas requisições ao servidor para ter o objeto completo, já na segunda opção eu poderia ter o problema de carregar informação de uma vez em excesso. Naturalmente coloquei um exemplo simples demais, mas em casos complexos vários objetos podem estar aninhados e contendo diversas listas, etc.
Enfim, alguém saberia apontar alguma direção sobre como tratam isso em seus projetos? Há algum direcionamento sobre esse tipo de questão?
Tiago Silva
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)