Dans ma tentative de refonte d'une application existante à l'aide de style architectural REST, je suis tombé sur un problème que je voudrais à terme comme "Mediatype Explosion". Cependant, je ne suis pas sûr si c'est vraiment un problème ou un avantages inhérents de REPOS. Pour expliquer ce que je veux dire, prenons l'exemple suivant
Une petite partie de notre application ressemble à:
collection-des-collections->collections-des-articles->items
j'.e haut niveau est une collection de collections et chacun de ces la collection est à nouveau une collection d'éléments.
Aussi, chaque élément a 8 attributs qui peuvent être lues et écrites individuellement. Essayer d'exposer la au-dessus de la hiérarchie de repos ressources me laisse avec la des types de média suivants:
application/vnd.mycompany.collection-of-collections+xml
application/vnd.mycompany.collection-of-items+xml
application/vnd.mycompany.item+xml
De plus, étant donné que chaque élément a 8 attributs qui peuvent être lues et écrites individuellement, il en résultera un autre de 8 types de médias. par exemple, un tel type de support pour l'attribut "value" d'un élément serait:
application/vnd.mycompany.item_value+xml
Comme je l'ai mentionné plus tôt, ce n'est qu'une infime partie de notre application et j'attends plusieurs différentes collections et des éléments qui doit être exposée de cette façon.
Mes questions sont les suivantes:
- Suis-je en train de faire quelque chose de mal par rapport à ce grand nombre de types de médias?
- Qu'est-ce que la conception alternative de la méthode pour éviter cette explosion de types de médias?
Je suis également conscient que le design est très granulaire, en particulier d'exposer les attributs de l'élément et à la séparation des types de médias pour chacun d'eux. Toutefois, il grossière signifie que je vais finir le transfert de données inutiles sur le fil alors qu'en réalité, il suffit au client de lire ou d'écrire un seul attribut d'un élément. Comment voulez-vous aborder un tel problème de conception?