SOAP päringud testimiseks
Siin lehel on kirjeldatud ja lahti seletatud mõned näidispäringud. Neid päringuid saab kasutada enda turvaserveri ja teise X-tee liikme turvaserveri andmevahetuse kontrollimiseks. Kui vastuseks ei ole veateade, siis andmevahetus õnnestus ning kahe turvaserveri vaheline suhtlus toimis.
NB: Näidispäringud tuleb kohandada enda asutuse ja andmevahetus partneri infoga!
Päringus kasutatud UUID genereerimiseks saab kasutada UUID generaatorit. Näidispäringute Sisesta_Siia_UUID väärtused tuleb asendada genereeritud UUID'ga ning uut UUID väärtust tuleb kasutada iga päringuga.
Päringu käivitamine
Päringut saate turvaserveri käsurealt käivitada järgmise käsuga:
curl -v -d @/tmp/request.xml -o /tmp/reply.xml -H "Content-type: text/xml; charset=UTF-8" http://TURVASERVER/
Väärtuse TURVASERVER asemel kirjutage enda turvaserveri sisemine aadress, mille pihta päringut saadate.
Päringu tegemiseks võite ka näiteks SoapUI'd kasutada ning sellega turvaserveri pihta päringut saata.
Andmeteenuste pärimise ehk listMethods päring, RIA xroad-center alamsüsteemi näitel:
listMethods
<?xml version="1.0" encoding="utf-8"?>
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xroad="http://x-road.eu/xsd/xroad.xsd"
xmlns:id="http://x-road.eu/xsd/identifiers">
<SOAP-ENV:Header>
<xroad:client id:objectType="SUBSYSTEM">
<id:xRoadInstance>ee-dev</id:xRoadInstance>
<id:memberClass>GOV</id:memberClass>
<id:memberCode>70006317</id:memberCode>
<id:subsystemCode>generic-consumer</id:subsystemCode>
</xroad:client>
<xroad:service id:objectType="SERVICE">
<id:xRoadInstance>ee-dev</id:xRoadInstance>
<id:memberClass>GOV</id:memberClass>
<id:memberCode>70006317</id:memberCode>
<id:subsystemCode>xroad-center</id:subsystemCode>
<id:serviceCode>listMethods</id:serviceCode>
</xroad:service>
<xroad:id>Sisesta_Siia_UUID</xroad:id>
<xroad:protocolVersion>4.0</xroad:protocolVersion>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<xroad:listMethods/>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Enne päringu käivitamist tuleb muuta xroad:client lõik enda asutusele vastavaks:
<xroad:client id:objectType="SUBSYSTEM">
<id:xRoadInstance>KESKKOND</id:xRoadInstance>
<id:memberClass>ENDA_MEMBER_CLASS</id:memberClass>
<id:memberCode>ENDA_MEMBER_CODE</id:memberCode>
<id:subsystemCode>ENDA_SUBSYSTEM_CODE</id:subsystemCode>
</xroad:client>
Suurte tähtedega kirjutatud väärtused tuleb asendada vastavalt:
- KESKKOND - siia kirjutage kas ee-dev, ee-test või EE (tõstutundlik)
- ENDA_MEMBER_CLASS - siia kirjutage enda asutuse member class väärtus, kas COM, GOV, NGO või NEE
- ENDA_MEMBER_CODE - siia kirjutage enda asutuse member code väärtus. Eesti äriregistris registreeritud asutuste puhul on selleks asutuse registrikood.
- ENDA_SUBSYSTEM_CODE - siia kirjutage enda alamsüsteemi subsystem code väärtus, millega päringut teete. Alamsüsteem peab olema 'registered' staatuses.
Kui soovite mõne teise alamsüsteemi andmeteenuste nimekirja pärida, siis peate kohandama xroad:service lõiku vastavalt andmevahetuspartneri ehk teenuspakkuja infoga:
<xroad:service id:objectType="SERVICE">
<id:xRoadInstance>KESKKOND</id:xRoadInstance>
<id:memberClass>PARTNERI_MEMBER_CLASS</id:memberClass>
<id:memberCode>PARTNERI_MEMBER_CODE</id:memberCode>
<id:subsystemCode>PARTNERI_SUBSYSTEM_CODE</id:subsystemCode>
<id:serviceCode>TEENUS</id:serviceCode>
</xroad:service>
Suurte tähtedega kirjutatud väärtused tuleb asendada vastavalt:
- KESKKOND - siia kirjutage kas ee-dev, ee-test või EE (tõstutundlik). Peab klappima xroad:client lõigus kirjutatud keskkonnaga!
- PARTNERI_MEMBER_CLASS - siia kirjutage teenuspakkuja asutuse member class väärtus, kas COM, GOV, NGO või NEE
- PARTNERI_MEMBER_CODE - siia kirjutage teenuspakkuja asutuse member code väärtus. Eesti äriregistris registreeritud asutuste puhul on selleks asutuse registrikood.
- PARTNERI_SUBSYSTEM_CODE - siia kirjutage teenuspakkuja alamsüsteemi subsystem code väärtus, mis pakub andmeteenuseid.
- NB: Päringu õnnestumiseks peab teenuspakkuja olema andnud Teie alamsüsteemile ligipääsu enda teenustele
- TEENUS - siia kirjutage teenuse kood, mida soovite pärida. Antud näiteks on selles listMethods, mis tagastab nimekirja alamsüsteemi poolt pakutavatest teenustest.
Sarnaste kohandamistega saate teha ka teisi näidispäringuid.
Lubatud teenuste loetelu ehk allowedMethods päringu näidis:
<?xml version="1.0" encoding="utf-8"?>
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ns1="http://aar.x-road.ee/producer/"
xmlns:xroad="http://x-road.eu/xsd/xroad.xsd"
xmlns:id="http://x-road.eu/xsd/identifiers">
<SOAP-ENV:Header>
<xroad:client id:objectType="SUBSYSTEM">
<id:xRoadInstance>ee-dev</id:xRoadInstance>
<id:memberClass>GOV</id:memberClass>
<id:memberCode>70006317</id:memberCode>
<id:subsystemCode>generic-consumer</id:subsystemCode>
</xroad:client>
<xroad:service id:objectType="SERVICE">
<id:xRoadInstance>ee-dev</id:xRoadInstance>
<id:memberClass>GOV</id:memberClass>
<id:memberCode>70006317</id:memberCode>
<id:subsystemCode>dhl</id:subsystemCode>
<id:serviceCode>allowedMethods</id:serviceCode>
</xroad:service>
<xroad:id>Sisesta_Siia_UUID</xroad:id>
<xroad:protocolVersion>4.0</xroad:protocolVersion>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<xroad:allowedMethods/>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Kui teenuse kausutusõigus on antud, siis vastuses kuvatakse ühte või rohkem lubatud teenuseid:
<SOAP-ENV:Body>
<xroad:allowedMethodsResponse>
...
<id:serviceCode>receiveDocuments</id:serviceCode>
</xroad:service>
Kui teenuste kasutusõiguseid ei ole antud, siis on päringu vastus tühi:
<SOAP-ENV:Body>
<xroad:allowedMethodsResponse/>
</SOAP-ENV:Body>
Teenuse WSDL'i pärimise ehk getWSDL näide:
<?xml version="1.0" encoding="utf-8"?>
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:id="http://x-road.eu/xsd/identifiers"
xmlns:xroad="http://x-road.eu/xsd/xroad.xsd">
<SOAP-ENV:Header>
<xroad:client id:objectType="SUBSYSTEM">
<id:xRoadInstance>ee-dev</id:xRoadInstance>
<id:memberClass>GOV</id:memberClass>
<id:memberCode>70006317</id:memberCode>
<id:subsystemCode>riha</id:subsystemCode>
</xroad:client>
<xroad:service id:objectType="SERVICE">
<id:xRoadInstance>ee-dev</id:xRoadInstance>
<id:memberClass>GOV</id:memberClass>
<id:memberCode>70006317</id:memberCode>
<id:subsystemCode>aar</id:subsystemCode>
<id:serviceCode>getWsdl</id:serviceCode>
</xroad:service>
<xroad:id>Sisesta_Siia_UUID</xroad:id>
<xroad:protocolVersion>4.0</xroad:protocolVersion>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<xroad:getWsdl>
<xroad:serviceCode>oigused</xroad:serviceCode>
<xroad:serviceVersion>v1</xroad:serviceVersion>
</xroad:getWsdl>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>