Rajapintakyselyt rekistereissä
Verkkopalvelu tekee rajapintakyselyn asiakasorganisaation rajapintaan oman liityntäpalvelimensa ja Suomi.fi-palveluväylän kautta. SOAP-toteutuksissa kysely on muodoltaan seuraavanlainen:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xrd="http://x-road.eu/xsd/xroad.xsd" xmlns:id="http://x-road.eu/xsd/identifiers">
<SOAP-ENV:Header>
<xrd:client id:objectType="SUBSYSTEM">
<id:xRoadInstance>FI</id:xRoadInstance>
<id:memberClass>GOV</id:memberClass>
<id:memberCode>0245437-2</id:memberCode>
<id:subsystemCode>ServiceViewClient</id:subsystemCode>
</xrd:client>
<xrd:service id:objectType="SERVICE">
<id:xRoadInstance>FI</id:xRoadInstance>
<id:memberClass>GOV</id:memberClass>
<id:memberCode>000000-1</id:memberCode>
<id:subsystemCode>TestSystem</id:subsystemCode>
<id:serviceCode>testService</id:serviceCode>
</xrd:service>
<xrd:protocolVersion>4.0</xrd:protocolVersion>
<xrd:id></xrd:id>
<xrd:userId></xrd:userId>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<ns1:testService xmlns:ns1="http://x-road.fi/producer">
<request>
<ssn>123456-2111</ssn>
</request>
</ns1:testService>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Kunkin Palveluväylään dataa tarjoavan tahon tiedot täydennetään <xrd:service id:objectType="SERVICE">-tagien sisään.
Vastauksena henkilötunnuksella tehtyyn kyselyyn saadaan Palveluväylän hyväksymä XML-sanoma, jossa luettava data löytyy <response></response>-tagien sisältä. Suomi.fi-verkkopalvelussa loppukäyttäjälle vastaus näytetään yksinkertaisesti tyyliteltynä Handlebars templaten mukaisesti.
On tärkeää huomioida, että kaiken näytettävän datan tulisi olla vastauksen response-tagien sisällä. Verkkopalvelun päässä ei siis ole tarkoitus yhdistellä eri datalähteistä tullutta tietoa, vaan se jää asiakasorganisaation sovitinpalvelun (tai sisäisen tietojärjestelmän) tehtäväksi. Tieto ei myöskään saa olla sanoman liitteenä (attachment) tai koodistona, joka tulisi avata Verkkopalvelun päässä
Vastaus on muotoa:
<?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:xrd="http://x-road.eu/xsd/xroad.xsd">
<SOAP-ENV:Header>
<xrd:client id:objectType="SUBSYSTEM">
<id:xRoadInstance>FI</id:xRoadInstance>
<id:memberClass>GOV</id:memberClass>
<id:memberCode>0245437-2</id:memberCode>
<id:subsystemCode>ServiceViewClient</id:subsystemCode>
</xrd:client>
<xrd:service id:objectType="SERVICE">
<id:xRoadInstance>FI</id:xRoadInstance>
<id:memberClass>GOV</id:memberClass>
<id:memberCode>000000-1</id:memberCode>
<id:subsystemCode>TestSystem</id:subsystemCode>
<id:serviceCode>testService</id:serviceCode>
</xrd:service>
<xrd:userId>test</xrd:userId>
<xrd:id>ID11234</xrd:id>
<xrd:protocolVersion>4.0</xrd:protocolVersion>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<ts1:testServiceResponse xmlns:ts1="http://test.x-road.fi/producer">
<request>
<ssn>123456-2111</ssn>
</request>
<response>
<nimi>Mallidata</nimi>
<aika>TI 31.2.2016 15:00</aika>
<lisatieto>malliksi</lisatieto>
</response>
</ts1:testServiceResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Tässä esimerkissä näkyvät HTML-elementtien tyylittelyt tulevat Verkkopalvelun tyylioppaasta, mutta asiakasorganisaatio saa esittää rakenteeseen toiveita.