In un'API REST di un'importante applicazione che copre diversi domini correlati, ha più senso suddividere le risorse in "aree" in base al dominio aziendale a cui appartengono o è meglio mantenere un singolo modello?
Ad esempio, ci sono sottodomini "Vendite" e "Spazio pubblicitario". Gli utenti del sistema in genere si preoccupano solo di un dominio alla volta, ma sono possibili eccezioni. Esiste un concetto "Articolo" che esiste in entrambi i domini in modo da poter implementare la risorsa "elemento" in due modi diversi.
-
hanno risorse diverse per rappresentare il concetto in ciascun dominio, ogni risorsa contiene solo i dati rilevanti:
/ vendite / oggetti /: id
/ inventario / oggetti /: id
-
avere una singola risorsa con tutti i dati da utilizzare in tutti i contesti:
/ oggetti /: id
Ci sono anche molte risorse che appartengono solo a uno dei domini.
professionisti delle "aree"
- più facile capire l'API per gli utenti che si interessano solo di un singolo dominio
- più facile da implementare le risorse (meno materiale da leggere / aggiornare alla volta) Le risorse
- possono essere più specializzate / ottimizzate per ogni particolare dominio
- capacità di controllare l'accesso alle risorse a un livello più granulare
professionisti di un singolo modello unificato
- nessuna risorsa duplicata per concetti che appartengono a più di un dominio
- se un utente deve lavorare con più domini, dovrà solo utilizzare una singola API che copra tutte le sue esigenze
Il partizionamento API è descritto sopra come un modo valido per ridurre la complessità del contratto e dell'implementazione API? Non l'ho mai visto menzionato da nessuna parte.
Ci sono altre cose che devono essere prese in considerazione per prendere una decisione a favore di entrambi gli approcci?