Suomi.fi kehittäjille
Siirry suoraan sisältöön.

Palveluväylän testipalvelut

Artikkelissa kerrotaan Palveluväylän testipalveluista, joiden avulla voit varmistaa liityntäpalvelimen asennuksen onnistumisen ja testata X-Road -tiedonsiirtoprotokollan mukaisten SOAP-sanomien ja REST-kyselyiden lähettämistä ja vastausten käsittelyä.

Liityntäpalvelimen asiakasrajapinta, jonka kautta Palveluväylän palvelujen kutsuminen tapahtuu, on muotoa https://{host}/. Osoitteen {host}-osa tulee korvata organisaation oman liityntäpalvelimen host-nimellä.

HUOM! IP-osoitteen käyttö kutsuissa ei ole suositeltavaa, sillä se aiheuttaa varmenteisiin liittyviä ongelmia. Ongelmia ilmenee, mikäli liityntäpalvelimen kutsussa käytetty host-nimi ei vastaa liityntäpalvelimen varmenteessa olevaa host-nimeä.

Tutustu myös seuraaviin teknisiin aineistoihin:

Soap-sanomien testaus

Liityntäpalvelimelle lähetettävien pyyntöjen Content-Type-otsikkotiedon arvon tulee olla text/xml ja HTTP-metodin on oltava POST.

Liityntäpalvelimen osoite: https://{host}/
Method: POST
Content-Type: text/xml

getRandom

GetRandom-palvelu ei sisällä kutsuparametreja. Se palauttaa vastauksenaan satunnaisen kokonaisluvun 0:n ja 100:n väliltä.

Testaaminen Curl-komentoriviohjelmalla

Voit käyttää getRandom-palvelua testaamiseen helposti myös Curl-komentoriviohjelman avulla antamalla seuraavan komennon:

curl -k -d @getRandom.xml --header "Content-Type: text/xml" -X POST https://{host}/

Curl-komennossa on käytetty k-optiotaAvautuu uuteen ikkunaan.. Tällöin kutsutun palvelun varmennetta ei verifioida.

getRandom-palvelun kutsumiseen käytettävä SOAP-sanoma

Alla on esitetty getRandom-palvelun kutsumiseen käytettävä SOAP-sanoma. Client-lohkon X:illä merkityt sisällöt on korvattava oman organisaatiotunnuksen alle lisätyn alijärjestelmän tiedoilla. Lisäksi -elementtiin on laitettava arvoksi se Palveluväylän ympäristö (FI-DEV, FI-TEST tai FI), jossa SOAP-sanomaa halutaan testata.

Kysely

<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>

Esimerkkivastaus:

<?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-palvelu sisältää name-kutsuparametrin ja palauttaa vastauksenaan name-parametrin arvona annetulle nimelle kohdistetun tervehdyksen.

Testaaminen Curl-komentoriviohjelmalla

Voit käyttää helloService-palvelua testaamiseen helposti myös Curl-komentoriviohjelman avulla antamalla seuraavan komennon:

curl -k -d @helloService.xml --header "Content-Type: text/xml" -X POST https://{host}/

Curl-komennossa on käytetty k-optiotaAvautuu uuteen ikkunaan.. Tällöin kutsutun palvelun varmennetta ei verifioida.

helloService-palvelun kutsumiseen käytettävä SOAP-sanoma

Alla on esitetty helloService-palvelun kutsumiseen käytettävä SOAP-sanoma. Client-lohkon X:illä merkityt sisällöt on korvattava oman organisaatiotunnuksen alle lisätyn alijärjestelmän tiedoilla. Lisäksi -elementtiin on laitettava arvoksi se Palveluväylän ympäristö (FI-DEV, FI-TEST tai FI), jossa SOAP-sanomaa halutaan testata.

Kysely:

<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>


Esimerkkivastaus:

<?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>

REST-palveluiden testaaminen

GET rest-test/random

rest-test/random-palvelu ei sisällä kutsuparametreja. Se palauttaa vastauksenaan satunnaisen kokonaisluvun 0:n ja 100:n väliltä.

Testaaminen Curl-komentoriviohjelmalla

Voit käyttää palvelun testaamiseen helposti curl komentoriviohjelmaa ja alla olevaa esimerkkikyselyä. Esimerkissä clientin X:illä merkityt sisällöt on korvattava oman organisaatiotunnuksen alle lisätyn alijärjestelmän tiedoilla. Esimerkissä on käytetty FI-TEST ympäristöä, tämän tilalla voi käyttää sen palveluväyläympäristön nimeä (FI-DEV, FI-TEST tai FI), jossa REST-sanomaa halutaan testata.

Curl-komennossa on käytetty -k-optiotaAvautuu uuteen ikkunaan.. Tällöin kutsutun palvelun varmennetta ei verifioida.

Kysely:

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

Esimerkkivastaus:

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

rest-test/hello-palvelulle voi antaa query-parametrina name-arvon. Palvelu palauttaa vastauksena name-parametrin arvona annetulle nimelle kohdistetun tervehdyksen.

Testaaminen Curl-komentoriviohjelmalla

Voit käyttää palvelun testaamiseen curl-komentoriviohjelmaa ja alla olevaa esimerkkikyselyä. Esimerkeissä clientin X:llä merkityt sisällöt on korvattava oman organisaatiotunnuksen alle lisätyn alijärjestelmän tiedoilla.

Esimerkissä on käytetty FI-TEST ympäristöä ja tämän tilalle voi käyttää se Palveluväylän ympäristön nimeä (FI-DEV, FI-TEST ja FI), jossa REST-sanomaa halutaan testata. Curl-komennossa on käytetty -k-optiotaAvautuu uuteen ikkunaan.. Tällöin kutsutun palvelun varmennetta ei verifioida.

Kysely:

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

Esimerkkivastaus:

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!"}

Päivitetty: 28.10.2024

Oletko tyytyväinen tämän sivun sisältöön?