Informationsledens testtjänster
I artikeln informeras om Informationsledens testtjänster, med vilka hjälp du kan säkerställa att installationen av anslutningsservern lyckats och testa sändningen av SOAP-meddelanden och REST-förfrågningar enligt X-Road dataöverföringsprotokollet samt hanteringen av svaren.
Anslutningsserverns kundgränssnitt, via vilket Informationsledens tjänster anropas, har formen https://{host}/. {Host}-delen ska ersättas med organisationens eget host-namn på anslutningsservern.
OBS! Det rekommenderas inte att IP-adressen används vid kontakter, eftersom det orsakar problem i anslutning till certifikat. Problem uppstår om host-namnet som används vid kontakt till anslutningsservern inte motsvarar host-namnet på anslutningsserverns certifikat.
Bekanta dig också med följande tekniska material:
- Exempeltjänsternas källkod (på engelska)Öppnas i ett nytt fönster.
- WSDL-beskrivning (xml) av testtjänsternaÖppnas i ett nytt fönster.
Testning av SOAP-meddelanden
Värdet på Content-Type-rubrikuppgiften för begäran som sänts till anslutningsservern ska vara i formen text/xml och HTTP-metoden ska vara POST.
URL: https://{host}
Method: POST
Content-Type: text/xml
Beskrivningar av SOAP-testtjänsternaÖppnas i ett nytt fönster. finns i API-katalogen.
getRandom
GetRandom-tjänsten innehåller inga anropsparametrar. Som svar återkommer det slumpmässiga heltalet mellan 0 och 100.
Testning med kommandoprogrammet Curl
Du kan även enkelt testa en getRandom-tjänst med hjälp av kommandoraden Curl genom att ge följande kommandon:
curl -k -d @getRandom.xml --header "Content-Type: text/xml" -X POST https://{host}/I Curl-kommandot har k-optionen använts (på engelska)Öppnas i ett nytt fönster.. Då verifieras inte certifikatet för den anropade tjänsten.
SOAP-meddelande för anrop av getRandom
Nedan visas SOAP-meddelandet som används för att bjuda in tjänsten getRandom. Innehållet som är markerat med X i Client-blocket måste ersättas med uppgifterna i det subsystem som lagts till under den egna organisationsbeteckningen. Dessutom ska den miljön av Informationsleden (FI-DEV, FI-TEST eller FI) där man vill testa SOAP-meddelandet anges som element.
Förfrågan:
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xro="http://x-road.eu/xsd/xroad.xsd"
xmlns:iden="http://x-road.eu/xsd/identifiers"
>
<soapenv:Header>
<xro:client iden:objectType="SUBSYSTEM">
<iden:xRoadInstance>FI-TEST</iden:xRoadInstance>
<iden:memberClass>XXXX</iden:memberClass>
<iden:memberCode>XXXX</iden:memberCode>
<iden:subsystemCode>XXXX</iden:subsystemCode>
</xro:client>
<xro:service iden:objectType="SERVICE">
<iden:xRoadInstance>FI-TEST</iden:xRoadInstance>
<iden:memberClass>GOV</iden:memberClass>
<iden:memberCode>0245437-2</iden:memberCode>
<iden:subsystemCode>TestService</iden:subsystemCode>
<iden:serviceCode>getRandom</iden:serviceCode>
<iden:serviceVersion>v1</iden:serviceVersion>
</xro:service>
<xro:id>ID11234</xro:id>
<xro:userId>test</xro:userId>
<xro:protocolVersion>4.0</xro:protocolVersion>
</soapenv:Header>
<soapenv:Body>
<prod:getRandom xmlns:prod="http://test.x-road.global/producer" />
</soapenv:Body>
</soapenv:Envelope>
Exempelsvar:
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:iden="http://x-road.eu/xsd/identifiers" xmlns:xro="http://x-road.eu/xsd/xroad.xsd">
<soapenv:Header>
<xro:client iden:objectType="SUBSYSTEM">
<iden:xRoadInstance>FI-TEST</iden:xRoadInstance>
<iden:memberClass>XXXX</iden:memberClass>
<iden:memberCode>XXXX</iden:memberCode>
<iden:subsystemCode>XXXX</iden:subsystemCode>
</xro:client>
<xro:service iden:objectType="SERVICE">
<iden:xRoadInstance>FI-TEST</iden:xRoadInstance>
<iden:memberClass>GOV</iden:memberClass>
<iden:memberCode>0245437-2</iden:memberCode>
<iden:subsystemCode>TestService</iden:subsystemCode>
<iden:serviceCode>getRandom</iden:serviceCode>
<iden:serviceVersion>v1</iden:serviceVersion>
</xro:service>
<xro:id>ID11234</xro:id>
<xro:requestHash algorithmId="http://www.w3.org/2001/04/xmlenc#sha512">
Doc7YT1KNpgupOTaQP+6yN2n+wEJntryCPa6i40zGIRudZf3HSgrwiZuQuB+pKJwRx2V5rsr0L/jOmaV9o9n8Q==
</xro:requestHash>
<xro:userId>test</xro:userId>
<xro:protocolVersion>4.0</xro:protocolVersion>
</soapenv:Header>
<soapenv:Body>
<ts1:getRandomResponse xmlns:ts1="http://test.x-road.global/producer">
<ts1:data>42</ts1:data>
</ts1:getRandomResponse>
</soapenv:Body>
</soapenv:Envelope>
helloService
HelloService-tjänsten innehåller en name-anropsparameter och returnerar som svar en hälsning till det angivna namnet.
Testning med kommandoprogrammet Curl
Med Curl-kommandoradprogrammet kan du enkelt testa helloService-tjänsten med följande kommandon:
curl -k -d @helloService.xml --header "Content-Type: text/xml" -X POST https://{host}/I Curl-kommandot har k-optionen använts (på engelska)Öppnas i ett nytt fönster.. Då verifieras inte certifikatet för den anropade tjänsten.
SOAP-meddelande för anrop av helloService-tjänsten
Nedan visas SOAP-meddelandet som används för att kontakta helloService-tjänsten. Innehållet som är markerat med X i Client-blocket måste ersättas med uppgifterna i det subsystem som lagts till under den egna organisationsbeteckningen. Dessutom ska den miljön av Informationsleden (FI-DEV, FI-TEST eller FI) där man vill testa SOAP-meddelandet anges som element.
Förfrågan:
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xro="http://x-road.eu/xsd/xroad.xsd"
xmlns:iden="http://x-road.eu/xsd/identifiers"
>
<soapenv:Header>
<xro:client iden:objectType="SUBSYSTEM">
<iden:xRoadInstance>FI-TEST</iden:xRoadInstance>
<iden:memberClass>XXXX</iden:memberClass>
<iden:memberCode>XXXX</iden:memberCode>
<iden:subsystemCode>XXXX</iden:subsystemCode>
</xro:client>
<xro:service iden:objectType="SERVICE">
<iden:xRoadInstance>FI-TEST</iden:xRoadInstance>
<iden:memberClass>GOV</iden:memberClass>
<iden:memberCode>0245437-2</iden:memberCode>
<iden:subsystemCode>TestService</iden:subsystemCode>
<iden:serviceCode>helloService</iden:serviceCode>
<iden:serviceVersion>v1</iden:serviceVersion>
</xro:service>
<xro:id>ID11234</xro:id>
<xro:userId>test</xro:userId>
<xro:protocolVersion>4.0</xro:protocolVersion>
</soapenv:Header>
<soapenv:Body>
<prod:helloService xmlns:prod="http://test.x-road.global/producer">
<prod:name>Erkki Esimerkki</prod:name>
</prod:helloService>
</soapenv:Body>
</soapenv:Envelope>
Exempelsvar:
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:iden="http://x-road.eu/xsd/identifiers" xmlns:xro="http://x-road.eu/xsd/xroad.xsd">
<soapenv:Header>
<xro:client iden:objectType="SUBSYSTEM">
<iden:xRoadInstance>FI-TEST</iden:xRoadInstance>
<iden:memberClass>XXXX</iden:memberClass>
<iden:memberCode>XXXX</iden:memberCode>
<iden:subsystemCode>XXXX</iden:subsystemCode>
</xro:client>
<xro:service iden:objectType="SERVICE">
<iden:xRoadInstance>FI-TEST</iden:xRoadInstance>
<iden:memberClass>GOV</iden:memberClass>
<iden:memberCode>0245437-2</iden:memberCode>
<iden:subsystemCode>TestService</iden:subsystemCode>
<iden:serviceCode>helloService</iden:serviceCode>
<iden:serviceVersion>v1</iden:serviceVersion>
</xro:service>
<xro:id>ID11234</xro:id>
<xro:requestHash algorithmId="http://www.w3.org/2001/04/xmlenc#sha512">
NcckU0J6OXU88GxhsNH/4/CZlunAscUl+Xi65CBQe6dO+yiSubms1RssbLRSarh/LfwaGkJuiIQrm7fARRtoFg==
</xro:requestHash>
<xro:userId>test</xro:userId>
<xro:protocolVersion>4.0</xro:protocolVersion>
</soapenv:Header>
<soapenv:Body>
<ts1:helloServiceResponse xmlns:ts1="http://test.x-road.global/producer">
<ts1:message>Hello Erkki Esimerkki! Greetings from adapter server!</ts1:message>
</ts1:helloServiceResponse>
</soapenv:Body>
</soapenv:Envelope>Testning av REST-tjänster
Testning av REST-tjänster
GET rest-test/random
rest-test/random-tjänsten innehåller inte anropsparametrar. Som svar återkommer det slumpmässiga heltalet mellan 0 och 100.
Testning med kommandoprogrammet Curl
För att testa tjänsten kan du enkelt använda Curl-kommandoradprogrammet och exempelförfrågan nedan. I exemplet måste innehåll märkta med X i client ersättas med uppgifterna i det undersystem som lagts till under den egna organisationsbeteckningen. I exemplet har man använt FI-TEST-miljön. I stället för detta kan man använda namnet på den informationsledsmiljö (FI-DEV, FI-TEST eller FI) där man vill testa REST-meddelandet.
I Curl-kommandot har -k-optionen använtsÖppnas i ett nytt fönster.. Då verifieras inte certifikatet för den anropade tjänsten.
Förfrågan
curl -k -H 'X-Road-Client: FI-TEST/XXXX/XXXX/XXXX' -H 'accept: application/json' -i
https://{host}/r1/FI-TEST/GOV/0245437-2/TestService/rest-test/randomEsimerkkivastaus
Exempelsvar
HTTP/1.1 200
Date: Wed, 13 Dec 2023 09:53:47 GMT
Content-Type: application/json
x-road-id: FI-TEST-e6821729-a81d-49a8-a807-56a9bec0c022
x-road-client: FI-TEST/XXXX/XXXX/XXXX
x-road-service: FI-TEST/GOV/0245437-2/TestService/rest-test
x-road-request-id: 558e8c41-fbe9-4370-941f-b802f11e5615
x-road-request-hash:
wH7FYkzHW1T/1mBaGgTXAjZV1kBCJkjmxBa58JntVZ2Imc4qmjXOHoY4WHO5uZczGxxuWJqVKsCiBkfEmm9ytg==
Content-Length: 11
{"data":11}
GET rest-test/hello
resttest/hello-tjänsten kan ges ett name-värde som query-parameter. Som svar på den angivna name-parametern returnerar tjänsten en hälsning till det angivna namnet.
Testning med kommandoprogrammet Curl
För att testa tjänsten kan du använda Curl-kommandoradprogrammet och exempelförfrågan nedan. Innehåll som märkts med X i client måste ersättas med uppgifterna i det undersystem som lagts till under den egna organisationsbeteckningen.
I exemplet har man använt FI-TEST-miljön. I stället för detta kan man använda namnet på den av Informationsledens miljöer (FI-DEV, FI-TEST eller FI) där man vill testa REST-meddelandet. I Curl-kommandot har -k-optionen använtsÖppnas i ett nytt fönster.. Då verifieras inte certifikatet för den anropade tjänsten.
Förfrågan
curl -k -H 'X-Road-Client: FI-TEST/XXXX/XXXX/XXXX' -H 'accept: application/json' -i
https://{host}/r1/FI-TEST/GOV/0245437-2/TestService/rest-test/hello?name=Erkki%20Esimerkki
Exempelsvar
HTTP/1.1 200
Date: Wed, 13 Dec 2023 12:05:34 GMT
Content-Type: application/json
x-road-id: FI-TEST-0cc79ae0-2cce-4593-9345-8297a8585d5f
x-road-client: FI-TEST/GOV/0245437-2/TestClient
x-road-service: FI-TEST/GOV/0245437-2/TestService/rest-test
x-road-request-id: 5a703f7b-2cfc-4e94-8e52-c9b749631a2f
x-road-request-hash:
slYoi7VWZdpPBiPawebuBMbkFRP29cGylqkZb2lxYdOxc5xPb5cKn6MWnLyJ2UaJchJ5PQ83/uX8bfDgdzeGIw==
Content-Length: 67
{"message":"Hello Erkki Esimerkki! Greetings from adapter server!"}