Ho bisogno di progettare una risorsa API restful ed è una risorsa piuttosto complicata in quanto ho bisogno di dettagli su altre risorse per definire la mia proprietà.
Attualmente ho 3 soluzioni.
-
Creare la risorsa correlata come una proprietà finché non ho il Ho bisogno di dettagli granulari
- Pro: efficiente
- Contro: rompere i principi di apertura / chiusura in quanto dovremo modificare la risorsa correlata esistente o duplicarla.
-
Creazione di una risorsa piatta che definisce le proprietà da altre risorsa.
- Pro: semplice
- Contro: inefficiente poiché molte informazioni verranno duplicate.
-
Simile al # 1 ma invece di aggiungere calcoli come proprietà alla risorsa correlata, creare un riferimento ad essi.
- Pro: efficiente e consente di utilizzare la risorsa correlata effettiva senza modificarla.
- Contro: relazioni complesse.
Risorsa (soluzione n. 1)
-
I calcoli
- RelatedItem - > RelatedSubItem - > RelatedSubSubItem - > Calcolo # 1, Calcolo n. 2, calcolo n. 3
- RelatedItem - > RelatedSubItem - > RelatedSubSubItem - > Calcolo n. 4, calcolo n. 4, calcolo n. 5
Risorsa (soluzione n. 2)
-
I calcoli
- Proprietà di calcolo n. 1
- RelatedItemDetail
- RelatedSubItemDetail
-
RelatedSubSubItemDetail
-
Proprietà di calcolo n. 2
- RelatedItemDetail
- RelatedSubItemDetail
-
RelatedSubSubItemDetail
-
Proprietà di calcolo n. 3
- RelatedItemDetail
- RelatedSubItemDetail
- RelatedSubSubItemDetail
...
Risorsa (soluzione n. 3)
-
I calcoli
- RelatedItem - > RelatedSubItem - > RelatedSubSubItem - > ID # 1
- RelatedItem - > RelatedSubItem - > RelatedSubSubItem - > ID # 2
- Calcolo n. 1 - > ID # 1
- Calcolo n. 2 - > ID # 1
- Calcolo n. 3 - > ID # 1
- Calcolo n. 4 - > ID # 1
- Calcolo n. 5 - > ID # 2
- Calcolo n. 6 - > ID # 3