El manejo de Arquitecturas REST es un mundo ya que estas se basan sobre todo en diferentes estilos que se pueden aplicar a los endpoints que se diseñan . Es cierto que en un primer momento las operaciones más sencillas estan representandas por GET , PUT , POST y DELETE pero a partir de ahi se abre un abanico inmenso de posibilidades .
Recursos REST y Agregados
Una de las cosas mas curiosas es como podemos publicar un recurso REST o que es en si un Recurso REST ya que not tiene porque ser algo “concreto” como una tabla de la base de datos sino que puede ser una entidad algo más “abstracta” . Imagenemonos que disponemos de dos tablas en la base de datos que estan relacionadas como pueden ser Cliente y Dirección.
Es posible publicar estas dos como servicios REST cada una en sus Urls correspondientes .Por ejemplo podríamos tener /clientes/dni para publicar un recurso con un cliente concreto mientras que podríamos disponer de la url de /clientes/dni/direccion para acceder a la dirección de cada cliente .
Esto es lo que habitualmente se considera un agregado en Arquitecturas REST . Ahora bien en esta situación puede que nos interese más publicar un Recurso que incluya dentro del cliente la dirección como meras propiedades del Recurso de esta forma cambiaremos la granularidad del Recurso simplificando la url REST y quedándonos solamente con clientes/dni que incluirá la dirección en concreto
Esto nos aporta una solución mas compacta y de granularidad a nuestra Arquitectura REST.