Sto progettando un sistema che verrà eseguito online con Microsoft Windows Azure. Un componente è un servizio Web basato su REST che sarà in realtà un wrapper (che utilizza un modello proxy) che chiama i servizi Web REST di un business partner, che ha a che fare con lo storage BLOB (nota: non stiamo utilizzando la memoria blu). La maggior parte delle funzionalità richiede una richiesta, chiama il servizio web del nostro partner, riceve la richiesta e la restituisce al client.
Ci sono una serie di ragioni per farlo, ma una delle più grandi è che supporteremo tre client: la nostra applicazione desktop (win e mac), le app mobili (iOS) e un front-end web. Avere un'unica API che inviamo al nostro partner ci protegge se quel partner cambia mai.
Desidero che il nostro servizio supporti sia JSON che XML per il formato di trasferimento dei dati, JSON per il web e probabilmente XML per desktop e mobile (abbiamo già un parser XML in quei prodotti). Il nostro partner supporta anche entrambi questi formati.
Stavo pensando di utilizzare ASP.NET MVC 4 con l'API Web. Mentre progetto questo, la cosa che mi preoccupa è il controllo statico del tipo di C #. Cosa succede se il partner aggiunge o rimuove elementi dai dati? Probabilmente possiamo codificarci in modo difensivo, ma sento ancora qualche preoccupazione. Inoltre, dobbiamo fare una buona quantità di codice noioso, configurare la nostra API e poi girarci e chiamare l'API del nostro partner. Probabilmente non c'è molta scelta su di esso però. Ma, nel profondo della mia mente, mi chiedo se forse un linguaggio più dinamico sarebbe una scelta migliore.
Voglio raggiungere e vedere se qualcuno ha dovuto farlo prima, quali soluzioni tecnologiche hanno usato (non sono collegato a questo, in questi giorni Azure può ospitare altre tecnologie), e se qualcuno ha fatto qualcosa del genere può segnalare eventuali problemi emersi. Grazie!
La ricerca del problema sembra trovare solo soluzioni che si concentrano sulla connessione di un servizio Web SOAP su un server proxy, e non su ciò a cui mi riferisco qui.
Nota: Cross pubblicato (per suggerimento) da link
Grazie!