Inleiding tot de Web-API's ~ REST vs SOAP
Wanneer interactie met web services, meestal de keuze van welke methode gebruik zal worden gemaakt voor je. Het merendeel van de diensten werken in een van beide RUST of SOAP, niet beide (Amazon is een opmerkelijke uitzondering op deze regel). Als de keuze echter, zijn er verschillende punten te overwegen:
-
Overhead - REST verzoeken zijn relatief klein. SOAP-verzoeken, aan de andere kant, bevatten veel extra informatie, die echt kan oplopen.
-
Transparantie - Met REST aanvragen (zelfs wanneer voltooid via HTTPS), is alle verzoeken inlichtingen in het helder; met SOAP alleen het eindpunt (URL) zichtbaar is. Dit klinkt misschien als een duidelijke overwinning voor SOAP, maar niet helemaal. Wanneer de aanvragen gaan in de heldere, kunnen ze gemakkelijk worden gecontroleerd door de relevante IT-diensten en afgeschermd door firewalls. REST verzoeken kunnen ook gemakkelijk worden gecached (wanneer deze wordt gemarkeerd als toegestaan door de server) door de bestaande infrastructuur, waardoor de server belasting en bandbreedte kosten.
-
Gebruiksgemak - Veel ontwikkelaars hebben aangegeven een voorkeur te ontwikkelen voor REST-servers, omdat de verzoeken snel kan worden gegenereerd zonder alle extra inkapseling vereist door SOAP. Amazon, bijvoorbeeld (het aanbieden van zowel REST en SOAP-interfaces), heeft 85 procent van de verzoeken plaatsvinden over REST.
-
Service definitie - SOAP diensten worden gedefinieerd door Web Services Description Language (WSDL) bestanden, die alle informatie die nodig is om een verzoek bevatten. In feite zijn generieke SOAP-clients beschikbaar waarmee u op elk verzoek door een bepaalde dienst niets anders dan het adres van het WSDL-bestand te maken. Er is geen equivalent voor REST-diensten.
Encapsulation - SOAP verzoeken worden ingekapseld in een XML-envelop. Het lichaam van het verzoek zelf dan weer ingekapseld in een lichaam element. De toevoeging van namespacing binnen het document gaat verder duidelijk te definiëren wat elk element beschrijft. Er zijn verschillende uitstekende instrumenten die er zijn om het creëren van documenten, die kan de verveling van het creëren van deze verzoeken langer te staan.
Over het algemeen is er geen duidelijke winnaar (als er was, zou ik niet hoeven in te voeren beide). De keuze zal afhangen van de specifieke toepassing en de beschikbare instrumenten om het te bouwen. Het algemeen, wanneer de keuze, ik de voorkeur aan SOAP gebruiken in mijn communicatie webservice. Ik denk dat de service definitie en inkapseling door SOAP opweegt tegen de extra overhead en het gebrek aan protocol-niveau van transparantie.
| Opmerking | Een andere gemeenschappelijke Web Service API is XML-RPC. Hoewel de XML-RPC vrij eenvoudig is om te leren en te gebruiken, ontbreekt het de kenmerken van SOAP met behoud van een veel hogere overhead dan REST. Daarom zou, afhankelijk van uw doeleinden, het kiezen van REST of SOAP bijna altijd een betere keuze. |
een artikel afkomstig van Emanuela Hedrick
|