Il nostro team discute pesantemente sui problemi relativi alla gestione dell'elenco di codici in una definizione di servizio Web. L'obiettivo di progettazione è descrivere un'API del provider per interrogare un sistema utilizzando vari valori. Alcuni di loro sono cataloghi liste di codici. Un catalogo o un elenco di codici è un insieme di coppie di valori chiave. Esistono diversi sistemi (almeno 3) che mantengono liste di codici possibilmente diverse. Ogni sistema dovrebbe implementare l'API del provider, mentre ciascun sistema potrebbe avere un elenco di codici diverso per la stessa entità aziendale, ad es. pensa ai colori Un sistema conosce [(1, 'rosso'), (2, 'verde')] e un altro conosce [(1, 'verde chiaro'), (2, 'verde scuro'), (3, 'rosso')] ecc. .
L'accesso alle diverse implementazioni dell'API del provider verrà incapsulato da un servizio di query, ma esiste già un candidato che potrebbe utilizzare direttamente almeno un'API del provider.
Le attuali opzioni per progettare l'API discussa sono:
- utilizzare un elenco di codici astratto nella definizione dell'interfaccia: l'interfaccia del servizio Web definisce un gruppo ben noto di elenco di codici che dovrebbero essere utilizzati per l'interrogazione e la restituzione dei dati. Ogni implementazione del provider API deve mappare i valori di richiesta e di risposta da quella lista codici astratta a quella specifica del sistema.
- consente al componente di query di gestire l'elenco di codici: il servizio di query incapsulante conosce l'insieme di elenchi di codici di ciascuna implementazione dell'API del provider e si occupa di mappare l'input e l'output agli elenchi di codici specifici del sistema del sistema interrogato.
- non utilizzare affatto elenchi di codici nella definizione della query: basta interrogare gli elenchi di codici con una stringa semplice e lasciare che l'implementazione dell'API del provider determini il valore corretto. Ciò potrebbe comportare una perdita di informazioni e probabilmente molti falsi positivi, poiché la stringa di input non può essere mappata come canonica a un valore di lista di codici (ad esempio verde - verde o verde chiaro - verde scuro o entrambi)
Quali sono le tue esperienze resp. soluzioni a tale problema? Potresti dare qualche consiglio?