Seife, Ruhe und Kreativität der Menschen
SOAP benötigt ein Beschreibungsdokument wie WSDL, da jede Ressource mit unterschiedlichen Nachrichten belegt werden kann. Das Protokoll enthält keine Definition zu Einschränkungen hinsichtlich der möglichen Namen / Nachrichten, die Sie für die Bearbeitung einer Ressource verwenden können.
Beispiel: In SOAP kann Ihr Webdienst, der es Clients ermöglicht, einen Benutzer zu manipulieren, den Vorgang, mit dem ein Benutzer erstellt wird, in vielen verschiedenen Nachrichten offen legen, z.
addUser
createUser
insertUser
Dies sind natürlich nur ein paar Beispielnachrichten, da ich viele lustige Namen von Webservices-Methoden gesehen habe. Es gibt wirklich kreative Leute da draußen.
Wenn Sie Ihr zugrunde liegendes System mit einer Web-API verfügbar machen, die die REST-Prinzipien wirklich respektiert, muss der Client lediglich wissen, dass Sie eine Ressource mit dem Namen Benutzer haben, da die Wahrscheinlichkeit, dass Sie einen Benutzer in dieser Ressource erstellen, 99% beträgt Weg
POST /Users
Dies geschieht für jeden Vorgang, den Sie mit SOAP oder einem Web-API-REST verfügbar machen möchten.
Obwohl SOAP ein Protokoll ist, das einschränkt, was Sie tun können oder nicht, und REST eine Stilarchitektur ist, die viele offene Punkte für die Vorgehensweise lässt. Es gibt Bestrebungen, Konventionen zu definieren, wie REST-Web-APIs verfügbar gemacht und verwendet werden sollen.
BESCHREIBEN EINES WEB-API-REST
Im Bereich der Beschreibung eines Web-API-REST kann ich Swagger zitieren . Es ist kein Versuch, eine WSDL wie Web-API-REST zu erstellen, aber ein guter Versuch, einen offenen Standard für die Beschreibung von Web-API-REST zu erstellen.
Swagger ist eine Spezifikation und vollständige Framework-Implementierung zum Beschreiben, Produzieren, Konsumieren und Visualisieren von RESTful-Webdiensten.
Ich benutze Swagger sehr oft und liebe es wirklich, vor allem, weil die Swagger-Benutzeroberfläche es Ihnen ermöglicht, eine schöne Live-Konsole und Dokumentation für Ihre Web-API zu erstellen.
Es gibt viele Implementierungen von Swagger für die meisten Sprachen: C #, Java, Python, Ruby usw.
Wenn Sie die ASP .NET-Web-API verwenden, gibt es einige Projekte, mit denen die Swagger-Spezifikation automatisch generiert werden kann, z. B. Swagger.NET
Erzeugen von Kunden für einen Web-API-Rest
Da die Einschränkungen von REST, wie die begrenzte Anzahl von Verben (GET, POST, PUT, DELETE usw.), nicht so schwierig sind, eine Clientbibliothek für eine Web-API-REST zu generieren.
Projekte wie WebApiProxy können auf einfache Weise Clients für C # und Javascript generieren.
KONVENTIONEN FÜR WEB-API-REST
Um unser Leben als Entwickler zu vereinfachen, sollten Sie einige Konventionen definieren, wie sich unser Web-API-REST verhält. Die beste Anstrengung, die ich auf diesem Gebiet kenne, ist das sehr gute E-Book Apigee - Web Api Design . Das E-Book ist kein Versuch, eine Bibel oder ein Mantra zum Entwerfen Ihrer API zu erstellen, sondern eine Sammlung von Konventionen, die in großen Web-REST-APIs wie Twitter, Facebook, Linkedin, Google usw. beachtet werden.