Suomi.fi för tjänsteutvecklare
Gå direkt till innehållet.

Metatjänster

Artikeln beskriver de metatjänster som anslutningsservern erbjuder. Med hjälp av dem är det möjligt att få information om organisationer som anslutit sig till Suomi.fi-informationsled och de tjänster de erbjuder.

Syftet med metatjänsterna är att förbättra tillgången till de tjänster som anslutits till Informationsleden och underlätta ibruktagandet av dem. Följande uppgifter kan fås via metatjänsterna:

  • listClients: förteckning över organisationer som anslutits till Informationsleden (member) och organisationernas subsystem.
  • listCentralServices: förteckning över centraltjänster som tillhandahålls av Centralserverns anslutningsserver (central services).
  • listMethods: förteckning över tjänster tillhandahållen av viss organisation.
  • allowedMethods: förteckning över sådana tjänster som en viss organisation tillhandahåller och avsändaren av enkäten har användarrätt till.
  • getWsdl: tjänsternas WSDL-gränssnittsbeskrivningar

Metatjänsterna är tillgängliga från och med version 6.4/Informationsleden. Bekanta dig med metatjänsternas protokollbeskrivning (på engelska)Öppnas i ett nytt fönster..

Organisationer som anslutit sig till Informationsleden och deras subsystem - listClients

listClients metatjänst returnerar förteckning över organisationer (member) och organisationers subsystem som anslutits till Informationsleden

Kontakta Metatjänsten genom att göra en HTTP GET-begäran till anslutningsservern.

[GET] https://{SECURITYSERVER}/listClients

Anslutningsservern returnerar som svar ett XML-meddelande som innehåller uppgifter om alla organisationer och subsystem som anslutits till Informationsleden:

<ns2:clientList xmlns:ns1="http://x-
road.eu/xsd/identifiers"xmlns:ns2="http://x-road.eu/xsd/xroad.xsd">
    <ns2:member>
        <ns2:id ns1:objectType="MEMBER">
            <ns1:xRoadInstance>FI-DEV</ns1:xRoadInstance>
            <ns1:memberClass>GOV</ns1:memberClass>
            <ns1:memberCode>0920632-0</ns1:memberCode>
        </ns2:id>
        <ns2:name>CSC</ns2:name>
    </ns2:member>
    <ns2:member>
        <ns2:id ns1:objectType="MEMBER">
            <ns1:xRoadInstance>FI-DEV</ns1:xRoadInstance>
            <ns1:memberClass>GOV</ns1:memberClass>
            <ns1:memberCode>0245437-2</ns1:memberCode>
        </ns2:id>
        <ns2:name>VRK</ns2:name>
    </ns2:member>
    <ns2:member>
        <ns2:id ns1:objectType="SUBSYSTEM">
            <ns1:xRoadInstance>FI-DEV</ns1:xRoadInstance>
            <ns1:memberClass>GOV</ns1:memberClass>
            <ns1:memberCode>0245437-2</ns1:memberCode>
            <ns1:subsystemCode>TestClient</ns1:subsystemCode>
        </ns2:id>
        <ns2:name>VRK</ns2:name>
    </ns2:member>
    <ns2:member>
        <ns2:id ns1:objectType="SUBSYSTEM">
            <ns1:xRoadInstance>FI-DEV</ns1:xRoadInstance>
            <ns1:memberClass>GOV</ns1:memberClass>
            <ns1:memberCode>0245437-2</ns1:memberCode>
            <ns1:subsystemCode>TestService</ns1:subsystemCode>
        </ns2:id>
        <ns2:name>VRK</ns2:name>
    </ns2:member>
</ns2:clientList>

Tjänster från Centralservern - listCentralServices

listCentralServices metaservice returnerar förteckningen över centralserverns centraltjänster (central services).

Kontakta Metatjänsten genom att göra en HTTP GET-begäran till anslutningsservern.

[GET] https://{SECURITYSERVER}/listCentralServices

Anslutningsservern returnerar som svar ett XML-meddelande som innehåller centraltjänsternas uppgifter:

<ns2:centralServiceList
        xmlns:ns1="http://x-road.eu/xsd/identifiers"
        xmlns:ns2="http://x-road.eu/xsd/xroad.xsd">
    <ns2:centralService ns1:objectType="CENTRALSERVICE">
        <ns1:xRoadInstance>FI-DEV</ns1:xRoadInstance>
        <ns1:serviceCode>random</ns1:serviceCode>
    </ns2:centralService>
</ns2:centralServiceList>

Organisationens tjänster - listMethods

listMethods-metatjänsten returnerar en förteckning över tjänster som tillhandahålls av en viss organisation.

Metatjänsten kontaktas genom att göra en SOAP-inbjudan till anslutningsservern enligt Informationsledens dataöverföringsprotokoll. I Service-elementet ska det subsystem som kontaktas specificeras.

<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-DEV</id:xRoadInstance>
            <id:memberClass>GOV</id:memberClass>
            <id:memberCode>0245437-2</id:memberCode>
            <id:subsystemCode>TestClient</id:subsystemCode>
        </xrd:client>
        <xrd:service id:objectType="SERVICE">
            <id:xRoadInstance>FI-DEV</id:xRoadInstance>
            <id:memberClass>GOV</id:memberClass>
            <id:memberCode>0245437-2</id:memberCode>
            <id:subsystemCode>TestService</id:subsystemCode>
            <id:serviceCode>listMethods</id:serviceCode>
        </xrd:service>
        <xrd:userId>tuser</xrd:userId>
        <xrd:id>ID11234</xrd:id>
        <xrd:protocolVersion>4.0</xrd:protocolVersion>
    </SOAP-ENV:Header>
    <SOAP-ENV:Body>
        <xrd:listMethods/>
    </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Anslutningsservern returnerar som svar en förteckning över de tjänster som kopplats till det subsystem som specificerats i inbjudan.

<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-DEV</id:xRoadInstance>
<id:memberClass>GOV</id:memberClass>
<id:memberCode>0245437-2</id:memberCode>
<id:subsystemCode>TestClient</id:subsystemCode>
</xrd:client>
<xrd:service id:objectType="SERVICE">
<id:xRoadInstance>FI-DEV</id:xRoadInstance>
<id:memberClass>GOV</id:memberClass>
<id:memberCode>0245437-2</id:memberCode>
<id:subsystemCode>TestService</id:subsystemCode>
<id:serviceCode>listMethods</id:serviceCode>
</xrd:service>
<xrd:userId>tuser</xrd:userId>
<xrd:id>ID11234</xrd:id>
<xrd:protocolVersion>4.0</xrd:protocolVersion>
<xrd:requestHash
algorithmId="http://www.w3.org/2001/04/xmlenc#sha512">kXIWpudDipT1nlID9CvINYGJZwIxcZ0dn4LkWO9Y141M+1nJ5pDzmtR5ul+PxJnR2xDdOQBEXBgEMrodomEwfQ==
</xrd:requestHash>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<xrd:listMethodsResponse>
<xrd:service id:objectType="SERVICE">
<id:xRoadInstance>FI-DEV</id:xRoadInstance>
<id:memberClass>GOV</id:memberClass>
<id:memberCode>0245437-2</id:memberCode>
<id:subsystemCode>TestService</id:subsystemCode>
<id:serviceCode>helloService</id:serviceCode>
<id:serviceVersion>v1</id:serviceVersion>
</xrd:service>
<xrd:service id:objectType="SERVICE">
<id:xRoadInstance>FI-DEV</id:xRoadInstance>
<id:memberClass>GOV</id:memberClass>
<id:memberCode>0245437-2</id:memberCode>
<id:subsystemCode>TestService</id:subsystemCode>
<id:serviceCode>getRandom</id:serviceCode>
<id:serviceVersion>v1</id:serviceVersion>
</xrd:service>
</xrd:listMethodsResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Tjänster som organisationen tillhandahåller och som frågeställaren har användarrättigheter till - allowedMethods

allowedMethods-metatjänsten returnerar en förteckning över sådana tjänster som en viss organisation tillhandahåller och som avsändaren av enkäten har användarrättigheter till.

Metatjänsten kontaktas genom att göra en SOAP-inbjudan till anslutningsservern enligt Informationsledens dataöverföringsprotokoll. I Service-elementet ska det subsystem som kontaktas specificeras.

<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-DEV</id:xRoadInstance>
            <id:memberClass>GOV</id:memberClass>
            <id:memberCode>0245437-2</id:memberCode>
            <id:subsystemCode>TestClient</id:subsystemCode>
        </xrd:client>
        <xrd:service id:objectType="SERVICE">
            <id:xRoadInstance>FI-DEV</id:xRoadInstance>
            <id:memberClass>GOV</id:memberClass>
            <id:memberCode>0245437-2</id:memberCode>
            <id:subsystemCode>TestService</id:subsystemCode>
            <id:serviceCode>listMethods</id:serviceCode>
        </xrd:service>
        <xrd:userId>tuser</xrd:userId>
        <xrd:id>ID11234</xrd:id>
        <xrd:protocolVersion>4.0</xrd:protocolVersion>
    </SOAP-ENV:Header>
    <SOAP-ENV:Body>
        <xrd:listMethods/>
    </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Anslutningsservern returnerar som svar en förteckning över de tjänster som kopplats till det subsystem som specificerats i inbjudan och som avsändaren av enkäten har användarrätt till.

<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-DEV</id:xRoadInstance>
<id:memberClass>GOV</id:memberClass>
<id:memberCode>0245437-2</id:memberCode>
<id:subsystemCode>TestClient</id:subsystemCode>
</xrd:client>
<xrd:service id:objectType="SERVICE">
<id:xRoadInstance>FI-DEV</id:xRoadInstance>
<id:memberClass>GOV</id:memberClass>
<id:memberCode>0245437-2</id:memberCode>
<id:subsystemCode>TestService</id:subsystemCode>
<id:serviceCode>allowedMethods</id:serviceCode>
</xrd:service>
<xrd:userId>tuser</xrd:userId>
<xrd:id>ID11234</xrd:id>
<xrd:protocolVersion>4.0</xrd:protocolVersion>
<xrd:requestHash
algorithmId="http://www.w3.org/2001/04/xmlenc#sha512">DBtjBqBKhtoOLWzw7KeaySlNtxZ3eI9x5LR7c9974+CYdVGkPj5nqLWkcLOlwHZPlguJUeMB2sLg0URxvgaIpw==
</xrd:requestHash>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<xrd:allowedMethodsResponse>
<xrd:service id:objectType="SERVICE">
<id:xRoadInstance>FI-DEV</id:xRoadInstance>
<id:memberClass>GOV</id:memberClass>
<id:memberCode>0245437-2</id:memberCode>
<id:subsystemCode>TestService</id:subsystemCode>
<id:serviceCode>getRandom</id:serviceCode>
<id:serviceVersion>v1</id:serviceVersion>
</xrd:service>
</xrd:allowedMethodsResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Tjänsternas gränssnittsbeskrivningar - getWsdl

getWsdl-metatjänsten returnerar WSDL-beskrivningen av den tjänst som specificerats i inbjudan. Bekanta dig med WSDL-beskrivningen som används i X-Road under punkten gränssnittsbeskrivningar i artikeln X-Road-dataöverföringsprotokoll.

När man använder HTTP POST-metoden används samma förbindelseinställningar som fastställts för det subsystem som kontaktar tjänsterna. Med HTTP POST-metoden skickas alltså SOAP-meddelanden via anslutningsservern till Informationsleden i praktiken på exakt samma sätt som annars.

Nedan presenteras kontakten till getWsdl-metatjänsten

HTTP POST anrop

<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:protocolVersion>4.x</xro:protocolVersion>
        <xro:issue>123</xro:issue>
        <xro:id>123</xro:id>
        <xro:userId>123</xro:userId>
        <xro:service iden:objectType="SERVICE">
            <iden:xRoadInstance>FI</iden:xRoadInstance>
            <iden:memberClass>COM</iden:memberClass>
            <iden:memberCode>111</iden:memberCode>
            <iden:subsystemCode>SUB</iden:subsystemCode>
            <iden:serviceCode>getWsdl</iden:serviceCode>
            <iden:serviceVersion>v1</iden:serviceVersion>
        </xro:service>
        <xro:client iden:objectType="SUBSYSTEM">
            <iden:xRoadInstance>FI</iden:xRoadInstance>
            <iden:memberClass>COM</iden:memberClass>
            <iden:memberCode>111</iden:memberCode>
            <iden:subsystemCode>SUB</iden:subsystemCode>
        </xro:client>
    </soapenv:Header>
    <soapenv:Body>
        <xro:getWsdl>
            <xro:serviceCode>getRandom</xro:serviceCode>
            <xro:serviceVersion>v1</xro:serviceVersion>
        </xro:getWsdl>
    </soapenv:Body>
</soapenv:Envelope>

Svar från getWsdl-metatjänsten

Anslutningsservern returnerar som svar WSDL-beskrivningen för den tjänst som specificerats i kontakten. Beskrivningen innehåller också information om alla andra tjänster som beskrivs i samma WSDL. I exempelförfrågan ovan har tjänsten getRandom specificerats. I samma WSDL-beskrivning beskrivs även tjänsten helloService. Därför ingår också en beskrivning av helloService-tjänsten i svaret.

När man använder HTTP POST-metoden returneras svaret, dvs WSDL- beskrivningen av den önskade tjänsten, som bilaga till SOAP-svarsmeddelandet.

Bekanta dig närmare med svarsmeddelanden och exempelsvar (på engelska)Öppnas i ett nytt fönster..


Uppdaterad: 25.10.2024

Är du nöjd med innehållet på denna sida?