SOAP

SOAP (Simple Object Access Protocol) är ett äldre, XML-baserat protokoll för att anropa API:er — vanligt i företagsvärlden och starkt förknippat med Microsofts ekosystem (ASP.NET Web Services/ASMX, WCF). Där REST och GraphQL skickar lättviktig JSON, skickar SOAP alltid XML enligt ett strikt, formellt schema.

När du läst detta ska du kunna

  • Förklara vad som skiljer SOAP från REST
  • Känna igen ett SOAP-anrop och ett WSDL-kontrakt
  • Veta när du fortfarande stöter på SOAP idag

Allt är XML, allt är formellt

Ett SOAP-anrop skickas alltid som ett XML-”kuvert” (envelope), oavsett vad anropet faktiskt gäller:

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
<soap:Header></soap:Header>
<soap:Body>
<GetStudent xmlns="http://example.com/students">
<Id>42</Id>
</GetStudent>
</soap:Body>
</soap:Envelope>

Jämför det med REST, där samma anrop bara vore GET /api/students/42 — SOAP kräver betydligt mer skrivning, men får i gengäld en mycket strikt, formellt definierad struktur.

WSDL — kontraktet som beskriver API:et

Varje SOAP-tjänst har ett WSDL-dokument (Web Services Description Language) som i XML-form beskriver exakt vilka metoder tjänsten erbjuder, vilka parametrar de tar, och vilka datatyper som förväntas — maskinläsbart nog för att verktyg automatiskt ska kunna generera klientkod utifrån det. Det är lite som en mycket strängare kusin till OpenAPI/Swagger (se Scalar och OpenAPI), fast obligatorisk snarare än valfri.

Varför SOAP fortfarande dyker upp

De flesta nya API:er byggs idag som REST eller GraphQL — SOAP:s strikta XML-format och tunga tooling känns omständligt jämfört med ett enkelt JSON-anrop. Men SOAP lever kvar, särskilt i:

  • Äldre företagssystem — bank, försäkring, myndigheter, ERP-system som byggdes för 10–20 år sedan och aldrig migrerats
  • Integrationer som kräver formella garantier — WS-Security och transaktionsstöd inbyggt i protokollet, vilket vissa regelstyrda branscher (finans, sjukvård) fortfarande kräver
  • .NET-arv — äldre ASP.NET-projekt med ASMX- eller WCF-tjänster som fortfarande är i drift

Stöter du på ett .asmx- eller .wsdl-baserat API i ett företag, är det troligen ett SOAP-API du behöver prata med — även om allt nytt ni själva bygger är REST.

SOAP vs REST

SOAPREST
FormatAlltid XMLOftast JSON, valfritt egentligen
KontraktWSDL, obligatoriskt och striktOpenAPI/Swagger, valfritt
EndpointsOfta en enda endpoint, metod i XML-kroppenMånga endpoints, ett per resurs
ViktTungt, mycket “boilerplate”-XMLLättviktigt
Vanligt idagLegacy, reglerade branscherDe flesta nya API:er

TL;DR

SOAP är ett strikt, XML-baserat protokoll med ett formellt WSDL-kontrakt — tyngre än REST, men med starkare garantier. Det är sällan förstahandsvalet för nya API:er idag, men dyker fortfarande upp i äldre företagssystem och .NET-arv du kan behöva integrera mot.