CREATIVITÀ DI SAPONE, RESTO E PERSONE
SOAP ha bisogno di un documento di descrizione come WSDL perché ogni risorsa può essere consumata con messaggi diversi, non ci sono definizioni sul protocollo sui vincoli ai possibili nomi / messaggi che è possibile manipolare una risorsa.
Ad esempio, in SOAP il servizio Web che consente ai client di manipolare un utente può esporre l'operazione che crea un utente in molti messaggi diversi, come:
addUser
createUser
insertUser
Naturalmente, questi sono solo alcuni messaggi di esempio, perché ho visto molti nomi di metodi di servizi Web divertenti. Ci sono persone davvero creative là fuori.
D'altra parte, se stai esponendo il tuo sistema sottostante usando API Web che rispettano davvero i principi REST, il cliente deve solo sapere che hai una risorsa chiamata Users, perché c'è il 99% di probabilità che tu possa creare un utente in questo modo
POST /Users
E questo si verifica per ogni operazione che si desidera esporre utilizzando SOAP o un REST di API Web.
Nonostante sia un protocollo SOAP, che limita ciò che puoi o non puoi fare ed essere REST un'architettura di stile, che lascia molti punti aperti su come fare le cose. Ci sono sforzi per definire convenzioni su come esporre e consumare le API web REST.
DESCRIVERE UN RESTO API WEB
Nel campo di come descrivere un web api REST posso citare Swagger . Non è un tentativo di creare un WSDL come il web api REST, ma è un buon tentativo di creare uno standard aperto per la descrizione del web apis REST.
Swagger è una specifica e un'implementazione completa del framework per la descrizione, la produzione, il consumo e la visualizzazione di servizi Web RESTful.
Uso Swagger molto e lo adoro davvero, principalmente perché l' interfaccia utente di Swagger ti consente di generare una bella console dal vivo e documentazione per la tua API web.
Esistono molte implementazioni di Swagger per la maggior parte delle lingue: C #, Java, Python, Ruby, ecc.
Se si utilizza l'API Web ASP .NET, alcuni progetti generano automaticamente la specifica Swagger, come Swagger.NET
GENERAZIONE DI CLIENTI A UN RESTO API WEB
Perché i vincoli di REST, come l'insieme limitato di verbi (GET, POST, PUT, DELETE, ecc.) Non è così difficile da generare una libreria client in un REST di API Web.
Progetti come WebApiProxy possono facilmente generare client con C # e Javascript.
CONVENZIONI PER IL RESTO DELL'API WEB
Per semplificare la vita degli sviluppatori, è bene definire alcune convenzioni su come si comporterà il nostro REST di api Web, lo sforzo migliore che conosco in questo campo è l'ottimo e- book di Apigee - Web Api Design . L'e-book non è un tentativo di creare una bibbia o un mantra su come progettare la tua api, ma piuttosto una raccolta di convenzioni osservate nelle API REST di grandi dimensioni del web, come Twitter, Facebook, Linkedin, Google, ecc.