CREATIVITÀ SOAP, RIPOSO E PERSONE
SOAP ha bisogno di un documento descrittivo come WSDL perché ogni risorsa può essere consumata con diversi messaggi, non ci sono definizioni sul protocollo sui vincoli ai possibili nomi / messaggi che è possibile manipolare una risorsa.
Ad esempio, in SOAP il tuo servizio web che consente ai clienti 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 esempi di messaggi, perché ho visto molti nomi di metodi di servizi web divertenti. Ci sono persone davvero creative là fuori.
D'altro canto, se stai esponendo il tuo sistema sottostante usando web api che rispettano veramente i principi REST, il cliente deve solo sapere di avere una risorsa chiamata Users, perché c'è il 99% di possibilità che tu possa creare un utente in questo modo
POST /Users
E ciò si verifica per ogni operazione che si desidera esporre usando SOAP o un RIP web api.
Nonostante sia un protocollo SOAP, che limita ciò che puoi o non puoi fare, e sii REST un'architettura di stile, che lascia molti punti in sospeso su come fare le cose. Ci sono degli sforzi per definire le convenzioni su come esporre e consumare le web apis REST.
DESCRIVERE UN RIPOSO API WEB
Nel campo di come descrivere un RIP di web api, 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 descrivere REST web apis.
Swagger is a specification and complete framework implementation for
describing, producing, consuming, and visualizing RESTful web
services.
Uso molto Swagger e lo adoro, principalmente perché UI di Swagger che ti consente di generare un bel live console e documentazione per la tua web API.
Ci sono molte implementazioni di Swagger per la maggior parte delle lingue: C #, Java, Python, Ruby, ecc.
Se usi API Web ASP.NET, alcuni progetti generano automaticamente la specifica Swagger, come Swagger.NET
GENERAZIONE DEI CLIENTI AD UN RIPOSO API WEB
Poiché i vincoli di REST, come il set limitato di verbi (GET, POST, PUT, DELETE, ecc.) non sono così difficili da generare una libreria client su un web API REST.
Progetti come WebApiProxy possono facilmente generare client C # e Javascript.
CONVENTION FOR WEB API REST
Per mantenere le nostre vite come semplici sviluppatori è buona norma definire alcune convenzioni su come si comporterebbe il nostro web api REST, lo sforzo migliore che conosco in questo campo è l'ottimo Apigee - Web Api Design ebook . 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 in apis web REST di grandi dimensioni, come Twitter, Facebook, Linkedin, Google, ecc.