Attualmente un progetto a cui sto lavorando dipende da diversi SDK e API che eseguono attività identiche, ma per diversi prodotti esterni. Ad esempio, in un mondo di Internet of Things abbiamo un'interfaccia comune di TurnOn
, TurnOff
, GetStatus
, ecc. Avere tutte queste dipendenze nella carne e nelle patate del mio progetto sta diventando disordinato, e voglio estrailo in un servizio web separato che espone queste funzioni comuni su un'API REST.
La mia domanda è questa: qual è l'architettura consigliata per il fatto che un servizio Web esponga un'API REST che, quando viene chiamata, risolve l'IP richiesto nell'SDK corretto e passa attraverso il ciclo di richiesta / risposta standard? Soprattutto in un modo che ridimensiona e gestisce gli SDK che espongono i metodi in diversi linguaggi di programmazione.
Per il contesto, ecco una richiesta di esempio che l'API potrebbe esporre ... /things/{ip address}/turn_on
, che quindi risolverebbe che l'indirizzo IP appartiene a un aspirapolvere Hoover e fare una chiamata all'SDK dell'aspirapolvere Hoover, che potrebbe esporre i metodi scritto in C #. In alternativa, potrebbe risolvere il fatto che l'indirizzo IP appartiene a una diversa marca di vuoto che espone i suoi metodi in C ++.