Hermes-consult: SOAP over HTTP-Post

Voor de integratie van het LIS hermes-consult (pathhub.be) met CoZo (cozo.be) was het nodig een API aan te bieden d.m.v. SOAP. Omdat ons LIS geïmplementeerd is met PHP als backend-taal, is dit niet onmiddellijk beschikbaar. Daarom hebben we ervoor gekozen een eenvoudige implementatie te voorzien voor de HTTP-POST binding van SOAP.

SOAPAction

Aan de hand van de HTTP-header SOAPAction wordt de intentie van de actie aangeduid. Deze actie gebruiken we om in de server het verloop van de afhandeling te bepalen.

SOAPAction: "http://tempuri.org/GZOService/GZOService/THE_ACTION"

In deze implementatie halen we de actie ‘THE_ACTION’ uit de meegeleverde header.

<?php
function soapAction(Request $request)
{
  $soapAction = $request->header('SOAPAction');
  return substr($soapAction, strrpos($soapAction, '/') + 1, -1);
}
?>
Inhoud

De eigenlijke inhoud van het bericht is een XML-string die als body van de POST-request wordt meegegeven.

<?php
  $xmlString= $request->getContent();
  $xml = new \DOMDocument();
  $xml->loadXML($xmlString);
?>

wordt vervolgd…