- Principle of Operation
- Installation
- Consumer Gateway Configuration
- Provider Gateway Configuration
- Usage Examples
- REST API for City of Helsinki Service Map - List of Organizations
- REST API for City of Helsinki Service Map - Single Organization
- Finnish Library Directory
- Finnish Patent and Registration Office - Business Information Search
- Finnish Patent and Registration Office - Get Company
- Finto : Finnish Thesaurus and Ontology Service - Search
This is Rest Adapter Service component that sits between X-Road security server and a REST client or service (diagram). The component implements X-Road v4.0 SOAP profile and it's compatible with X-Road v6.4 and above.
Rest Adapter has two parts: Consumer Gateway and Provider Gateway. It is possible to use either only Consumer Gateway, only Provider Gateway, or both.
- (A) using both Consumer and Provider Gateways
- when both the client and the server are REST/JSON, but the messages need to go through X-Road
- when end to end encryption is needed
- (B) using only Consumer Gateway
- when the service is SOAP/XML, but a client needs to access it through REST/JSON
- (C) using only Provider Gateway
- when a REST/JSON service needs to be published in X-Road for SOAP/XML clients
N.B. Use of alternative A is no longer required since X-Road has a built-in support for consuming and producing REST services starting from version 6.21.0. More information.
The component is tested with X-Road v6.4 and it includes the following features:
- Provider Gateway : access REST services (JSON, XML) via WSDL defined X-Road services
- supported HTTP verbs:
GET
,POST
,PUT
andDELETE
- WSDL must be created manually
- REST response can be wrapped in SOAP body or SOAP attachment
- X-Road SOAP-headers are passed via HTTP headers (X-XRd-Client, X-XRd-Service, X-XRd-UserId, X-XRd-MessageId)
- supported HTTP verbs:
- Consumer Gateway : access WSDL defined X-Road services in a RESTful manner
- full support for services published through Provider Gateway
- limited support for other SOAP/XML services. See Consumer Gateway for details
- supported HTTP verbs:
GET
,POST
,PUT
andDELETE
- reformatting of resource links
- response's content type is given using Accept header (
text/xml
,application/json
)- if Provider Gateway returns the response as SOAP attachment, the value of HTTP Accept header is ignored and the response is returned in the original format
- X-Road SOAP headers are passed via HTTP headers (X-XRd-UserId, X-XRd-MessageId)
- support for browser-based access (N.B. reformatting of resource links not supported)
- service id and X-Road SOAP headers can be given as URL parameters
- can be disabled through configuration
- automatic conversions: JSON -> XML, XML -> JSON, JSON-LD -> XML, XML -> JSON-LD
- Round-trip JSON-XML-JSON conversion
- support for JSON-LD
- JSON -> XML conversion (for requests and responses) produces XML with undefined child element ordering. If client or service is strict about ordering (maybe because it validates the messages against the schema), this may be a problem.
- use of
<request>
/<response>
wrapper tags can be configured for each service- service provider decides whether to use wrappers or not, consumer end must be configured accordingly
- support for encryption/decryption of message content. More information and instructions for configuration can be found in encryption documentation.
- new REST services can be added through configuration - no coding needed
Consumer Gateway accepts HTTP GET, POST, PUT and DELETE requests, and it translates them to SOAP messages following the X-Road v6 SOAP profile. Gateway can produce flat XML elements (all children on same hierarchy level) from HTTP GET request, non-flat XML elements from HTTP POST requests containing JSON data, or write HTTP POST request body as-is into a SOAP attachment.
For example this GET-request:
[GET] http://www.example.com/rest-adapter-service/Consumer/www.restservice.com/id?param1=value1¶m2=value2
produces this request element (inside the X-Road SOAP envelope)
<request>
<resourceId>id</resourceId>
<param1>value1</param1>
<param2>value2</param2>
</request>
If HTTP request (POST / PUT / DELETE) contains a request body, there are two options:
- the body is passed unmodified as a SOAP attachment
- the body is converted to XML
The choice depends on the convertPost
configuration parameter.
the body is passed as a SOAP attachment using the format in which it is received from the client. No conversions are applied to the request body, which means that the client must send the body in the format required by the service provider. An empty RESTGatewayRequestBody
element is added to the SOAP request to indicate that the request body is passed as an attachment. For example:
Content-Type: application/json
[POST] http://www.example.com/rest-adapter-service/Consumer/www.restservice.com/id?param1=value1¶m2=value2
Request body: {"id":1,"name":"Test name"}
.
.
.
<request>
<resourceId>id</resourceId>
<param1>value1</param1>
<param2>value2</param2>
<RESTGatewayRequestBody href="RESTGatewayRequestBody" />
</request>
.
.
.
------=_Part_1_1325547227.1416893406358
Content-Type: application/json
Content-ID: RESTGatewayRequestBody
{"id":1,"name":"Test name"}
------=_Part_1_1325547227.1416893406358--
This JSON message in HTTP POST request body
{
"sender": "Some Name",
"message": {
"messageId": "12345678",
"subject": "some text",
"text": "more text",
"attachments": [
{
"attachmentId": "100",
"name": "attachment-1",
"mediaType": "application/pdf"
}
]
}
}
would be translated into e.g.
<some-ns:sendMessage xmlns:some-ns="http://com.example/some-namespace">
<some-ns:sender>Some Name</some-ns:sender>
<some-ns:message>
<some-ns:subject>some text</some-ns:subject>
<some-ns:attachments>
<some-ns:name>attachment-1</some-ns:name>
<some-ns:mediaType>application/pdf</some-ns:mediaType>
<some-ns:attachmentId>100</some-ns:attachmentId>
</some-ns:attachments>
<some-ns:messageId>12345678</some-ns:messageId>
<some-ns:text>more text</some-ns:text>
</some-ns:message>
</some-ns:sendMessage>
Request element's name sendMessage
, namespace prefix some-ns
and namespace URI http://com.example/some-namespace
come from the configuration.
JSON -> XML conversion has some limitations
- Consumer Gateway only understands a single namespace for the request element and it's children.
- Gateway can't produce XML attributes from the JSON source.
- It's not possible to produce XML with mixed content or elements.
- Gateway produces XML with unspecified child element ordering.
In this example, subject, attachment, messageId and text elements could appear in any order. In short, current implementation can convert only relatively simple messages.
Response messages's content type is given using Accept header. Supported values are text/xml
and application/json
. However, if Provider Gateway returns the response as SOAP attachment, the value of HTTP Accept header is ignored and the response is returned in its original format.
Consumer Gateway receives HTTP GET, POST, PUT and DELETE request from information system, converts the request to SOAP message, sends the SOAP message to the Security Server, receives the SOAP response from the security server, converts the response according to the value of the request's Accept header and returns the response to the information system. User id and message id that are required by X-Road can passed via HTTP headers (X-XRd-UserId, X-XRd-MessageId) or URL parameters. If X-XRd-UserId header is missing from the request, "anonymous" is set as user id. If X-XRd-MessageId is missing from the request, unique id is generated automatically. Both headers are included in the response message.
Browser-based access makes it possible to access services that are not configured in Consumer Gateway. The identifier of the service to be called is given as resource path. X-Road message headers and other request parameters are defined as URL parameters. It's enough to know that a service with the given identifier exists in X-Road and the X-Road client identifier that's used for making the service call is authorized to call the service. However, reformatting of resource links doesn't work when using browser-based access. For example:
http://localhost:8080/rest-adapter-service/Consumer/FI_PILOT.GOV.1019125-0.Demo2Service.getOrganizationList.v1/49?X-XRd-UserId=test&X-XRd-MessageId=1&X-XRd-NamespaceSerialize=http://x-road.global/producer&X-XRd-NamespacePrefixSerialize=ks&Accept=application/json
Provider Gateway accepts SOAP messages following the X-Road v6 SOAP profile and translates them to REST service requests. XML request parameters are translated to REST service request URI. For example:
<request>
<resourceId>id</resourceId>
<param1>value1</param1>
<param2>value2</param2>
</request>
[GET] http://www.restservice.com/id?param1=value1¶m2=value2
If HTTP request body is required in the request that is sent to the service provider, the request body must be passed as a SOAP attachment. In this case SOAP request must contain an empty RESTGatewayRequestBody
element, based on which Provider Gateway reads the first attachment and uses it as a HTTP request body when sending a request to a service provider. The response received from the service provider is wrapped in SOAP body or SOAP attachment according to Provider Gateway's configuration. For example:
.
.
.
<request>
<resourceId>id</resourceId>
<param1>value1</param1>
<param2>value2</param2>
<RESTGatewayRequestBody href="RESTGatewayRequestBody" />
</request>
.
.
.
------=_Part_1_1325547227.1416893406358
Content-Type: application/json
Content-ID: RESTGatewayRequestBody
{"id":1,"name":"Test name"}
------=_Part_1_1325547227.1416893406358--
Content-Type: application/json
[POST] http://www.restservice.com/id?param1=value1¶m2=value2
Request body: {"id":1,"name":"Test name"}
Provider Gateway receives SOAP request from Security Server, translates the request to REST service request, sends the request to a REST service, converts the response to XML (if needed), wraps the response in SOAP message and returns the SOAP response to the security server. X-Road SOAP-headers are passed via HTTP headers (X-XRd-Client, X-XRd-Service, X-XRd-UserId, X-XRd-MessageId).
See README for description of installation options.
http://localhost:8080/rest-adapter-service/Consumer
http://localhost:8080/rest-adapter-service/Provider
The WSDL description is accessible at:
http://localhost:8080/rest-adapter-service/Provider?wsdl
General settings are configured through consumer-gateway.properties
configuration file.
All the general properties are mandatory.
Property | Required | Default | Description |
---|---|---|---|
id.client | * | - | Identifier of the X-Road client that initiates the service call: instance.memberClass.memberId.subsystem Can be overridden for each service. |
ss.url | * | - | URL or IP address of the security server. The URL of Provider Gateway can be used for testing purposes. |
namespace.deserialize | * | - | Namespace that's used for serializing incoming SOAP responses. Can be overridden for each service. |
namespace.serialize | * | - | Namespace that's used for serializing outgoing SOAP requests. Can be overridden for each service. |
namespace.prefix.serialize | * | - | Namespace prefix that's used for serializing outgoing SOAP requests. Can be overridden for each service. |
serviceCallsByXRdServiceId.enabled | false | Boolean value that defines if browser-based access that makes it's possible to call unconfigured services using their X-Road service identifier is enabled/disabled. | |
wrappers | true | Use request/response -tags in SOAP message bodies. | |
keyLength | 128 | Key length (in bits) of symmetric key. Default is 128 bits. NB! Longer key requires [installing](http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html) unlimited key file. | |
publicKeyFile | - | Absolute path of the trust store file where public keys are stored. | |
publicKeyFilePassword | - | Password of the trust store file. | |
privateKeyFile | - | Absolute path of the key store file where the private key is stored. | |
privateKeyFilePassword | - | Password of the key store file. | |
privateKeyAlias | - | Alias of the private key. | |
privateKeyPassword | - | Password of the private key. | |
convertPost | false | If true, POST requests are converted from JSON to XML and sent in the SOAP request inline. If false, POST requests are sent as SOAP attachments. |
Individual services are configured through consumers.properties
configuration file. Each service has 8 properties of which 3 are mandatory. Each property must be prefixed with the number of the service, e.g. 0.id
, 0.path
, 0.verb
. The numbering starts from zero.
Property | Required | Default | Description |
---|---|---|---|
id | * | - | Identifier of the X-Road service that's called : instance.memberClass.memberId.subsystem.service.version |
path | * | - | Path is the part after Consumer Gateway base URL that identifies a single service. Path may contain a resource id's that's marked with {resourceId}. If the service response contains links to other resources it's recommended that the path matches with the real URL of the service. |
verb | * | - | HTTP verb that is supported by the service. The service identifier is a combination of path and verb properties, so the same path can be used multiple times with different verbs. |
id.client | - | Identifier of the X-Road client that initiates the service call: instance.memberClass.memberId.subsystem If not defined, default value from consumser-gateway.propertiesis used. |
|
response.modurl | false | Boolean value that indicates if Consumer Gateway should try to reformat links to other resources found in the response message. It's recommended to keep this property as false, if the response message doesn't contain links to other resources. | |
namespace.deserialize | - | Namespace that's used for deserializing incoming SOAP responses. If not defined, default value from consumser-gateway.properties is used. | |
namespace.serialize | - | Namespace that's used for serializing outgoing SOAP requests. If not defined, default value from consumser-gateway.properties is used. | |
namespace.prefix.serialize | - | Namespace prefix that's used for serializing outgoing SOAP requests. If not defined, default value from consumser-gateway.properties is used. | |
wrappers | true | Use request/response -tags in SOAP message bodies. If defined, also overrides setting from consumer-gateway.properties. | |
request.encrypted | false | If set to true, request is encrypted. If value is true, all the settings related to encryption must be defined in consumer-gateway.properties file. | |
response.encrypted | false | If set to true, expects response to be encrypted. If value is true, all the settings related to encryption must be defined in consumer-gateway.properties file. | |
convertPost | false | If true, POST requests are converted from JSON to XML and sent in the SOAP request inline. If false, POST requests are sent as SOAP attachments. If defined, also overrides setting from consumer-gateway.properties. |
If the response message contains links to other resources, the links are reformatted to point the consumer gateway. However, only links which beginning matches with the resource path used in Consumer Gateway are reformatted. For example:
Resource path:
/avoindata.prh.fi/opendata/bis/v1/
Full URL of the resource path on Consumer Gateway:
http://localhost:8080/rest-adapter-service/Consumer/avoindata.prh.fi/opendata/bis/v1/
Link to another resource:
http://avoindata.prh.fi/opendata/bis/v1/2659636-7
Reformatted link:
http://localhost:8080/rest-adapter-service/Consumer/avoindata.prh.fi/opendata/bis/v1/2659636-7
This link wouldn't be reformatted as its beginning doesn't match with the resource path:
http://anotherapi.prh.fi/opendata/bis/v1/2659636-7
General settings are configured through provider-gateway.properties
configuration file. All the general properties are mandatory.
Property | Required | Default | Description |
---|---|---|---|
wsdl.path | * | - | Path or filename of the WSDL file. File reading is first attempted from WEB-INF/classes directory (either inside packaged war, or in exploded war directory), and then from filesystem using the provided filename or path. |
namespace.deserialize | * | - | Namespace that's used for deserializing incoming SOAP requests. Can be overridden for each service. |
namespace.serialize | * | - | Namespace that's used for serializing outgoing SOAP responses. Can be overridden for each service. |
namespace.prefix.serialize | * | - | Namespace prefix that's used for serializing outgoing SOAP responses. Can be overridden for each service. |
wrappers | true | Expect request/response -tags in SOAP message bodies. | |
keyLength | 128 | Key length (in bits) of symmetric key. Default is 128 bits. NB! Longer key requires [installing](http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html) unlimited key file. | |
publicKeyFile | - | Absolute path of the trust store file where public keys are stored. | |
publicKeyFilePassword | - | Password of the trust store file. | |
privateKeyFile | - | Absolute path of the key store file where the private key is stored. | |
privateKeyFilePassword | - | Password of the key store file. | |
privateKeyAlias | - | Alias of the private key. | |
privateKeyPassword | - | Password of the private key- |
REST services are configured through providers.properties
configuration file. Each service has 10 properties of which 2 are mandatory. Each property must be prefixed with the number of the service, e.g. 0.id
, 0.url
. The numbering starts from zero.
Property | Required | Default | Description |
---|---|---|---|
id | * | - | Identifier of the X-Road service : instance.memberClass.memberId.subsystem.service.version |
url | * | - | URL of the REST service. |
verb | GET | HTTP verb that's used in the service call. Supported values: GET, POST, PUT and DELETE. | |
contenttype | - | Content-type HTTP header that's used in the service call. Required if HTTP verb is POST, PUT or DELETE and HTTP request contains a request body. | |
accept | - | Accept HTTP header that's used in the service call. | |
response.attachment | false | Return REST response as SOAP attachment. If response is returned as SOAP attachment, Consumer Gateway ignores the value of HTTP Accept header and returns the response in the original format. | |
request.xrdheaders | true | Pass X-Road SOAP headers to REST service via HTTP headers. | |
namespace.deserialize | - | Namespace that's used for deserializing incoming SOAP requests. If not defined, default value from provider-gateway.properties is used. | |
namespace.serialize | - | Namespace that's used for serializing outgoing SOAP responses. If not defined, default value from provider-gateway.properties is used. | |
namespace.prefix.serialize | - | Namespace prefix that's used for serializing outgoing SOAP responses. If not defined, default value from provider-gateway.properties is used. | |
wrappers | true | Expect request/response -tags in SOAP message bodies. If defined, also overrides setting from provider-gateway.properties. | |
reqParamNameFilterCondition | - | Request parameter name filter condition that's used for modifying request parameter names. Filtering is done using regex. | |
reqParamNameFilterOperation | - | Request parameter name filter operation that's used for modifying request parameter names. Operation is executed if and only if request parameter name matches the condition defined by reqParamNameFilterCondition. | |
reqParamValueFilterCondition | - | Request parameter value filter condition that's used for modifying request parameter values. Filtering is done using regex. | |
reqParamValueFilterOperation | - | Request parameter value filter operation that's used for modifying request parameter values. Operation is executed if and only if request parameter value matches the condition defined by reqParamValueFilterCondition. | |
request.encrypted | false | If set to true, expects request to be encrypted. If value is true, all the settings related to encryption must be defined in provider-gateway.properties file. | |
response.encrypted | false | If set to true, response is encrypted. If value is true, all the settings related to encryption must be defined in provider-gateway.properties file. |
Rest Adapter Service is shipped with configuration that includes 6 ready-to-use REST services. By default Consumer Gateway is configured to call Provider Gateway directly, and both Gateways have the same services configured (diagram). In this way it's possible to test both Gateways without access to X-Road. In addition, it's possible to call Provider Gateway directly using SOAP without Consumer Gateway in the middle (diagram).
The preconfigured Consumer Gateway services must be called using HTTP GET and Accept header can be set to text/xml
or application/json
. Provider Gateway services must be called using HTTP POST and Content-Type must be set to text/xml
. REST Client plugin for Firefox can be used for testing purposes.
API documentation: http://www.hel.fi/palvelukarttaws/rest/ver2_en.html
Configuration:
0.id=FI_PILOT.GOV.1019125-0.Demo2Service.getOrganizationList.v1
0.path=/www.hel.fi/palvelukarttaws/rest/v2/organization/
0.verb=get
Service request:
- Method:
GET
- Accept:
text/xml
orapplication/json
- X-XRd-MessageId:
1
- X-XRd-UserId:
test
URL:
http://localhost:8080/rest-adapter-service/Consumer/www.hel.fi/palvelukarttaws/rest/v2/organization/
Browser-based access:
http://localhost:8080/rest-adapter-service/Consumer/FI_PILOT.GOV.1019125-0.Demo2Service.getOrganizationList.v1/?X-XRd-UserId=test&X-XRd-MessageId=1&X-XRd-NamespaceSerialize=http://x-road.global/producer&X-XRd-NamespacePrefixSerialize=ks&Accept=application/json
Consumer Gateway response:
[
{
"id": 49,
"name_en": "City of Espoo",
"name_sv": "Esbo stad",
"data_source_url": "www.espoo.fi",
"name_fi": "Espoon kaupunki"
},
{
"id": 91,
"name_en": "City of Helsinki",
"name_sv": "Helsingfors stad",
"data_source_url": "www.hel.fi",
"name_fi": "Helsingin kaupunki"
},
{
"id": 92,
"name_en": "City of Vantaa",
"name_sv": "Vanda stad",
"data_source_url": "www.vantaa.fi",
"name_fi": "Vantaan kaupunki"
},
{
"id": 235,
"name_en": "City of Kauniainen",
"name_sv": "Grankulla stad",
"data_source_url": "www.kauniainen.fi",
"name_fi": "Kauniaisten kaupunki"
},
{
"id": 1000,
"name_en": "State IT Service Centre, Suomi.fi editorial team",
"name_sv": "Statens IT-servicecentral, Suomi.fi-redaktionen",
"data_source_url": "www.suomi.fi",
"name_fi": "Valtion IT-palvelukeskus, Suomi.fi-toimitus"
},
{
"id": 1001,
"name_en": "HUS Hospital District",
"name_sv": "Samkommunen HNS",
"data_source_url": "www.hus.fi",
"name_fi": "HUS-kuntayhtymä"
},
{
"id": 1002,
"name_en": "Helsinki Marketing Ltd",
"name_sv": "Helsinki Marketing Ltd",
"data_source_url": "www.visithelsinki.fi",
"name_fi": "Helsingin markkinointi Oy"
},
{
"id": 1003,
"name_en": "Ministry of Justice, Election Unit",
"name_sv": "Justitieministeriet, den högsta valmyndigheten",
"data_source_url": "www.vaalit.fi",
"name_fi": "Oikeusministeriö, ylin vaaliviranomainen"
},
{
"id": 1004,
"name_en": "Helsinki Region Environmental Services Authority HSY",
"name_sv": "Helsingforsregionens miljötjänster HRM",
"data_source_url": "www.hsy.fi",
"name_fi": "Helsingin seudun ympäristöpalvelut HSY"
},
{
"id": 1005,
"name_en": "Service Map editorial team",
"name_sv": "Servicekartans redaktion",
"data_source_url": "www.hel.fi/palvelukartta",
"name_fi": "Palvelukartan toimitus"
},
{
"id": 1007,
"name_en": "JLY - Finnish Solid Waste Association",
"name_sv": "JLY - Avfallsverksföreningen rf",
"data_source_url": "www.jly.fi",
"name_fi": "JLY Jätelaitosyhdistys ry"
},
{
"id": 1008,
"name_en": "The Norwegian Electric Vehicle Association",
"name_sv": "Norsk Elbilforening",
"data_source_url": "NOBIL.no",
"name_fi": "Norsk Elbilforening, sähköautojen latauspisteet"
},
{
"id": 1009,
"name_en": "External service point register user society",
"name_sv": "Gemenskapen bakom externa serviceregister",
"data_source_url": "asiointi.hel.fi/tprulkoinen",
"name_fi": "Ulkoisen toimipisterekisterin käyttäjäyhteisö"
},
{
"id": 1010,
"name_en": "University of Jyväskylä, LIPAS Liikuntapaikat.fi",
"name_sv": "Jyväskylä universitet, LIPAS Liikuntapaikat.fi",
"data_source_url": "www.liikuntapaikat.fi",
"name_fi": "Jyväskylän yliopisto, LIPAS Liikuntapaikat.fi"
}
]
Configuration:
0.id=FI_PILOT.GOV.1019125-0.Demo2Service.getOrganizationList.v1
0.url=http://www.hel.fi/palvelukarttaws/rest/v2/organization/
Service request:
- Method:
POST
- Content-Type:
text/xml
URL:
http://localhost:8080/rest-adapter-service/Provider
<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_PILOT</id:xRoadInstance>
<id:memberClass>GOV</id:memberClass>
<id:memberCode>0245437-2</id:memberCode>
<id:subsystemCode>ConsumerService</id:subsystemCode>
</xrd:client>
<xrd:service id:objectType="SERVICE">
<id:xRoadInstance>FI_PILOT</id:xRoadInstance>
<id:memberClass>GOV</id:memberClass>
<id:memberCode>1019125-0</id:memberCode>
<id:subsystemCode>Demo2Service</id:subsystemCode>
<id:serviceCode>getOrganizationList</id:serviceCode>
<id:serviceVersion>v1</id:serviceVersion>
</xrd:service>
<xrd:userId>test</xrd:userId>
<xrd:id>0ba036ea-d612-4e74-bf73-59a6f15627c8</xrd:id>
<xrd:protocolVersion>4.0</xrd:protocolVersion>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<test:getOrganizationList xmlns:test="http://x-road.global/producer">
<test:request/>
</test:getOrganizationList>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
API response URL: http://www.hel.fi/palvelukarttaws/rest/v2/organization/
Rest Adapter Service response:
<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_PILOT</id:xRoadInstance>
<id:memberClass>GOV</id:memberClass>
<id:memberCode>0245437-2</id:memberCode>
<id:subsystemCode>ConsumerService</id:subsystemCode>
</xrd:client>
<xrd:service id:objectType="SERVICE">
<id:xRoadInstance>FI_PILOT</id:xRoadInstance>
<id:memberClass>GOV</id:memberClass>
<id:memberCode>1019125-0</id:memberCode>
<id:subsystemCode>Demo2Service</id:subsystemCode>
<id:serviceCode>getOrganizationList</id:serviceCode>
<id:serviceVersion>v1</id:serviceVersion>
</xrd:service>
<xrd:userId>test</xrd:userId>
<xrd:id>0ba036ea-d612-4e74-bf73-59a6f15627c8</xrd:id>
<xrd:protocolVersion>4.0</xrd:protocolVersion>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<ts1:getOrganizationListResponse xmlns:ts1="http://x-road.global/producer">
<ts1:request/>
<ts1:response>
<ts1:array>
<ts1:id>49</ts1:id>
<ts1:name_en>City of Espoo</ts1:name_en>
<ts1:name_sv>Esbo stad</ts1:name_sv>
<ts1:data_source_url>www.espoo.fi</ts1:data_source_url>
<ts1:name_fi>Espoon kaupunki</ts1:name_fi>
</ts1:array>
<ts1:array>
<ts1:id>91</ts1:id>
<ts1:name_en>City of Helsinki</ts1:name_en>
<ts1:name_sv>Helsingfors stad</ts1:name_sv>
<ts1:data_source_url>www.hel.fi</ts1:data_source_url>
<ts1:name_fi>Helsingin kaupunki</ts1:name_fi>
</ts1:array>
<ts1:array>
<ts1:id>92</ts1:id>
<ts1:name_en>City of Vantaa</ts1:name_en>
<ts1:name_sv>Vanda stad</ts1:name_sv>
<ts1:data_source_url>www.vantaa.fi</ts1:data_source_url>
<ts1:name_fi>Vantaan kaupunki</ts1:name_fi>
</ts1:array>
<ts1:array>
<ts1:id>235</ts1:id>
<ts1:name_en>City of Kauniainen</ts1:name_en>
<ts1:name_sv>Grankulla stad</ts1:name_sv>
<ts1:data_source_url>www.kauniainen.fi</ts1:data_source_url>
<ts1:name_fi>Kauniaisten kaupunki</ts1:name_fi>
</ts1:array>
<ts1:array>
<ts1:id>1000</ts1:id>
<ts1:name_en>State IT Service Centre, Suomi.fi editorial team</ts1:name_en>
<ts1:name_sv>Statens IT-servicecentral, Suomi.fi-redaktionen</ts1:name_sv>
<ts1:data_source_url>www.suomi.fi</ts1:data_source_url>
<ts1:name_fi>Valtion IT-palvelukeskus, Suomi.fi-toimitus</ts1:name_fi>
</ts1:array>
<ts1:array>
<ts1:id>1001</ts1:id>
<ts1:name_en>HUS Hospital District</ts1:name_en>
<ts1:name_sv>Samkommunen HNS</ts1:name_sv>
<ts1:data_source_url>www.hus.fi</ts1:data_source_url>
<ts1:name_fi>HUS-kuntayhtymä</ts1:name_fi>
</ts1:array>
<ts1:array>
<ts1:id>1002</ts1:id>
<ts1:name_en>Helsinki Marketing Ltd</ts1:name_en>
<ts1:name_sv>Helsinki Marketing Ltd</ts1:name_sv>
<ts1:data_source_url>www.visithelsinki.fi</ts1:data_source_url>
<ts1:name_fi>Helsingin markkinointi Oy</ts1:name_fi>
</ts1:array>
<ts1:array>
<ts1:id>1003</ts1:id>
<ts1:name_en>Ministry of Justice, Election Unit</ts1:name_en>
<ts1:name_sv>Justitieministeriet, den högsta valmyndigheten</ts1:name_sv>
<ts1:data_source_url>www.vaalit.fi</ts1:data_source_url>
<ts1:name_fi>Oikeusministeriö, ylin vaaliviranomainen</ts1:name_fi>
</ts1:array>
<ts1:array>
<ts1:id>1004</ts1:id>
<ts1:name_en>Helsinki Region Environmental Services Authority HSY</ts1:name_en>
<ts1:name_sv>Helsingforsregionens miljötjänster HRM</ts1:name_sv>
<ts1:data_source_url>www.hsy.fi</ts1:data_source_url>
<ts1:name_fi>Helsingin seudun ympäristöpalvelut HSY</ts1:name_fi>
</ts1:array>
<ts1:array>
<ts1:id>1005</ts1:id>
<ts1:name_en>Service Map editorial team</ts1:name_en>
<ts1:name_sv>Servicekartans redaktion</ts1:name_sv>
<ts1:data_source_url>www.hel.fi/palvelukartta</ts1:data_source_url>
<ts1:name_fi>Palvelukartan toimitus</ts1:name_fi>
</ts1:array>
<ts1:array>
<ts1:id>1007</ts1:id>
<ts1:name_en>JLY - Finnish Solid Waste Association</ts1:name_en>
<ts1:name_sv>JLY - Avfallsverksföreningen rf</ts1:name_sv>
<ts1:data_source_url>www.jly.fi</ts1:data_source_url>
<ts1:name_fi>JLY Jätelaitosyhdistys ry</ts1:name_fi>
</ts1:array>
<ts1:array>
<ts1:id>1008</ts1:id>
<ts1:name_en>The Norwegian Electric Vehicle Association</ts1:name_en>
<ts1:name_sv>Norsk Elbilforening</ts1:name_sv>
<ts1:data_source_url>NOBIL.no</ts1:data_source_url>
<ts1:name_fi>Norsk Elbilforening, sähköautojen latauspisteet</ts1:name_fi>
</ts1:array>
<ts1:array>
<ts1:id>1009</ts1:id>
<ts1:name_en>External service point register user society</ts1:name_en>
<ts1:name_sv>Gemenskapen bakom externa serviceregister</ts1:name_sv>
<ts1:data_source_url>asiointi.hel.fi/tprulkoinen</ts1:data_source_url>
<ts1:name_fi>Ulkoisen toimipisterekisterin käyttäjäyhteisö</ts1:name_fi>
</ts1:array>
<ts1:array>
<ts1:id>1010</ts1:id>
<ts1:name_en>University of Jyväskylä, LIPAS Liikuntapaikat.fi</ts1:name_en>
<ts1:name_sv>Jyväskylä universitet, LIPAS Liikuntapaikat.fi</ts1:name_sv>
<ts1:data_source_url>www.liikuntapaikat.fi</ts1:data_source_url>
<ts1:name_fi>Jyväskylän yliopisto, LIPAS Liikuntapaikat.fi</ts1:name_fi>
</ts1:array>
</ts1:response>
</ts1:getOrganizationListResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
API documentation: http://www.hel.fi/palvelukarttaws/rest/ver2_en.html
Configuration:
1.id=FI_PILOT.GOV.1019125-0.Demo2Service.getOrganization.v1
1.path=/www.hel.fi/palvelukarttaws/rest/v2/organization/{resourceId}
1.verb=get
Service request:
- Method:
GET
- Accept:
text/xml
orapplication/json
- X-XRd-MessageId:
1
- X-XRd-UserId:
test
URL:
http://localhost:8080/rest-adapter-service/Consumer/www.hel.fi/palvelukarttaws/rest/v2/organization/49
Browser-based access:
http://localhost:8080/rest-adapter-service/Consumer/FI_PILOT.GOV.1019125-0.Demo2Service.getOrganizationList.v1/49?X-XRd-UserId=test&X-XRd-MessageId=1&X-XRd-NamespaceSerialize=http://x-road.global/producer&X-XRd-NamespacePrefixSerialize=ks&Accept=application/json
Consumer Gateway response:
{
"id": 49,
"name_en": "City of Espoo",
"name_sv": "Esbo stad",
"data_source_url": "www.espoo.fi",
"name_fi": "Espoon kaupunki"
}
Configuration:
1.id=FI_PILOT.GOV.1019125-0.Demo2Service.getOrganization.v1
1.url=http://www.hel.fi/palvelukarttaws/rest/v2/organization/
Service request:
- Method:
POST
- Content-Type:
text/xml
URL:
http://localhost:8080/rest-adapter-service/Provider
<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_PILOT</id:xRoadInstance>
<id:memberClass>GOV</id:memberClass>
<id:memberCode>0245437-2</id:memberCode>
<id:subsystemCode>ConsumerService</id:subsystemCode>
</xrd:client>
<xrd:service id:objectType="SERVICE">
<id:xRoadInstance>FI_PILOT</id:xRoadInstance>
<id:memberClass>GOV</id:memberClass>
<id:memberCode>1019125-0</id:memberCode>
<id:subsystemCode>Demo2Service</id:subsystemCode>
<id:serviceCode>getOrganization</id:serviceCode>
<id:serviceVersion>v1</id:serviceVersion>
</xrd:service>
<xrd:userId>test</xrd:userId>
<xrd:id>0ba036ea-d612-4e74-bf73-59a6f15627c8</xrd:id>
<xrd:protocolVersion>4.0</xrd:protocolVersion>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<test:getOrganization xmlns:test="http://x-road.global/producer">
<test:request>
<resourceId>49</resourceId>
</test:request>
</test:getOrganization>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
API response URL: http://www.hel.fi/palvelukarttaws/rest/v2/organization/49
Rest Adapter Service response:
<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_PILOT</id:xRoadInstance>
<id:memberClass>GOV</id:memberClass>
<id:memberCode>0245437-2</id:memberCode>
<id:subsystemCode>ConsumerService</id:subsystemCode>
</xrd:client>
<xrd:service id:objectType="SERVICE">
<id:xRoadInstance>FI_PILOT</id:xRoadInstance>
<id:memberClass>GOV</id:memberClass>
<id:memberCode>1019125-0</id:memberCode>
<id:subsystemCode>Demo2Service</id:subsystemCode>
<id:serviceCode>getOrganization</id:serviceCode>
<id:serviceVersion>v1</id:serviceVersion>
</xrd:service>
<xrd:userId>test</xrd:userId>
<xrd:id>0ba036ea-d612-4e74-bf73-59a6f15627c8</xrd:id>
<xrd:protocolVersion>4.0</xrd:protocolVersion>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<ts1:getOrganizationResponse xmlns:ts1="http://x-road.global/producer">
<ts1:request>
<ts1:resourceId>49</ts1:resourceId>
</ts1:request>
<ts1:response>
<ts1:id>49</ts1:id>
<ts1:name_en>City of Espoo</ts1:name_en>
<ts1:name_sv>Esbo stad</ts1:name_sv>
<ts1:data_source_url>www.espoo.fi</ts1:data_source_url>
<ts1:name_fi>Espoon kaupunki</ts1:name_fi>
</ts1:response>
</ts1:getOrganizationResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
API documentation (in Finnish): https://api.kirjastot.fi/
Configuration:
2.id=FI_PILOT.GOV.1019125-0.Demo2Service.getLibrary.v1
2.path=/api.kirjastot.fi/v3/organisation/
2.verb=get
Service request:
- Method:
GET
- Accept:
text/xml
orapplication/json
- X-XRd-MessageId:
1
- X-XRd-UserId:
test
URL:
http://localhost:8080/rest-adapter-service/Consumer/api.kirjastot.fi/v3/organisation/?name=kallio&city.name=helsinki
Browser-based access:
http://localhost:8080/rest-adapter-service/Consumer/FI_PILOT.GOV.1019125-0.Demo2Service.getLibrary.v1/?name=kallio&city.name=helsinki&X-XRd-UserId=test&X-XRd-MessageId=1&X-XRd-NamespaceSerialize=http://x-road.global/producer&X-XRd-NamespacePrefixSerialize=ks&Accept=application/json
Consumer Gateway response:
{
"result":{
"total":1,
"count":1,
"items":{
"organisation":{
"parent":84846,
"web_library":"",
"address":{
"area":{
"multilang":true,
"value":[
{
"lang":"fi",
"content":"Kallio"
},
{
"lang":"sv"
},
{
"lang":"en"
},
{
"lang":"se"
},
{
"lang":"ru",
"content":"Kallio"
}
]
},
"zipcode":"00530",
"box_number":"",
"city":{
"multilang":true,
"value":[
{
"lang":"fi",
"content":"Helsinki"
},
{
"lang":"sv",
"content":"Helsingfors"
},
{
"lang":"en",
"content":"Helsinki"
},
{
"lang":"se",
"content":"Helsinki"
},
{
"lang":"ru",
"content":"Helsinki"
}
]
},
"street":{
"multilang":true,
"value":[
{
"lang":"fi",
"content":"Viides linja 11"
},
{
"lang":"sv",
"content":"Femte linjen 11"
},
{
"lang":"en",
"content":"Viides linja 11"
},
{
"lang":"se"
},
{
"lang":"ru",
"content":"Viides linja 11"
}
]
},
"coordinates":{
"lon":24.95355311,
"lat":60.18372258
}
},
"city":15885,
"consortium":2093,
"type":"library",
"provincial_library":396,
"branch_type":"library",
"name":{
"multilang":true,
"value":[
{
"lang":"fi",
"content":"Kallion kirjasto"
},
{
"lang":"sv",
"content":"Berghälls bibliotek"
},
{
"lang":"en",
"content":"Kallio Library"
},
{
"lang":"se"
},
{
"lang":"ru",
"content":"Библиотека Каллио"
}
]
},
"short_name":{
"multilang":true,
"value":[
{
"lang":"fi",
"content":"Kallio"
},
{
"lang":"sv",
"content":"Berghäll"
},
{
"lang":"en",
"content":"Kallio"
},
{
"lang":"se"
},
{
"lang":"ru",
"content":"Каллио"
}
]
},
"id":84860,
"region":1001,
"email":{
"multilang":true,
"value":[
{
"lang":"fi",
"content":"kallion_kirjasto@hel.fi"
},
{
"lang":"sv",
"content":"kallion_kirjasto@hel.fi"
},
{
"lang":"en",
"content":"kallion_kirjasto@hel.fi"
},
{
"lang":"se"
},
{
"lang":"ru"
}
]
},
"slug":{
"multilang":true,
"value":[
{
"lang":"fi",
"content":"kallio"
},
{
"lang":"sv",
"content":"kallio"
},
{
"lang":"en",
"content":"kallio"
},
{
"lang":"se",
"content":"kallio"
},
{
"lang":"ru",
"content":"kallio"
}
]
},
"homepage":{
"multilang":true,
"value":[
{
"lang":"fi",
"content":"http://www.helmet.fi/kallionkirjasto"
},
{
"lang":"sv",
"content":"http://www.helmet.fi/berghallsbibliotek"
},
{
"lang":"en",
"content":"http://www.helmet.fi/kalliolibrary"
},
{
"lang":"se"
},
{
"lang":"ru",
"content":"http://www.helmet.fi/kallionkirjasto"
}
]
}
}
}
}
}
Configuration:
2.id=FI_PILOT.GOV.1019125-0.Demo2Service.getLibrary.v1
2.url=https://api.kirjastot.fi/v3/organisation?format=xml
Service request:
Method: POST
Content-Type: text/xml
URL:
http://localhost:8080/rest-adapter-service/Provider
<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_PILOT</id:xRoadInstance>
<id:memberClass>GOV</id:memberClass>
<id:memberCode>0245437-2</id:memberCode>
<id:subsystemCode>ConsumerService</id:subsystemCode>
</xrd:client>
<xrd:service id:objectType="SERVICE">
<id:xRoadInstance>FI_PILOT</id:xRoadInstance>
<id:memberClass>GOV</id:memberClass>
<id:memberCode>1019125-0</id:memberCode>
<id:subsystemCode>Demo2Service</id:subsystemCode>
<id:serviceCode>getLibrary</id:serviceCode>
<id:serviceVersion>v1</id:serviceVersion>
</xrd:service>
<xrd:userId>test</xrd:userId>
<xrd:id>0ba036ea-d612-4e74-bf73-59a6f15627c8</xrd:id>
<xrd:protocolVersion>4.0</xrd:protocolVersion>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<test:getLibrary xmlns:test="http://x-road.global/producer">
<test:request>
<test:name>Kallio</test:name>
<test:city.name>Helsinki</test:city.name>
</test:request>
</test:getLibrary>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
API response URL: https://api.kirjastot.fi/v3/organisation?name=pasila&city.name=helsinki&format=xml
Rest Adapter Service response:
<SOAP-ENV:Envelope>
<SOAP-ENV:Header>
<xrd:client id:objectType="SUBSYSTEM">
<id:xRoadInstance>FI_PILOT</id:xRoadInstance>
<id:memberClass>GOV</id:memberClass>
<id:memberCode>0245437-2</id:memberCode>
<id:subsystemCode>ConsumerService</id:subsystemCode>
</xrd:client>
<xrd:service id:objectType="SERVICE">
<id:xRoadInstance>FI_PILOT</id:xRoadInstance>
<id:memberClass>GOV</id:memberClass>
<id:memberCode>1019125-0</id:memberCode>
<id:subsystemCode>Demo2Service</id:subsystemCode>
<id:serviceCode>getLibrary</id:serviceCode>
<id:serviceVersion>v1</id:serviceVersion>
</xrd:service>
<xrd:userId>test</xrd:userId>
<xrd:id>0ba036ea-d612-4e74-bf73-59a6f15627c8</xrd:id>
<xrd:protocolVersion>4.0</xrd:protocolVersion>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<ts1:getLibraryResponse>
<ts1:request>
<ts1:name>Kallio</ts1:name>
<ts1:city.name>Helsinki</ts1:city.name>
</ts1:request>
<ts1:response>
<result count="1" total="1">
<items>
<organisation>
<web_library/>
<parent>84846</parent>
<branch_type>library</branch_type>
<short_name multilang="true">
<value lang="fi">Kallio</value>
<value lang="sv">Berghäll</value>
<value lang="en">Kallio</value>
<value lang="se"/>
<value lang="ru">Каллио</value>
</short_name>
<type>library</type>
<homepage multilang="true">
<value lang="fi">http://www.helmet.fi/kallionkirjasto</value>
<value lang="sv">http://www.helmet.fi/berghallsbibliotek</value>
<value lang="en">http://www.helmet.fi/kalliolibrary</value>
<value lang="se"/>
<value lang="ru">http://www.helmet.fi/kallionkirjasto</value>
</homepage>
<city>15885</city>
<id>84860</id>
<consortium>2093</consortium>
<address>
<area multilang="true">
<value lang="fi">Kallio</value>
<value lang="sv"/>
<value lang="en"/>
<value lang="se"/>
<value lang="ru">Kallio</value>
</area>
<street multilang="true">
<value lang="fi">Viides linja 11</value>
<value lang="sv">Femte linjen 11</value>
<value lang="en">Viides linja 11</value>
<value lang="se"/>
<value lang="ru">Viides linja 11</value>
</street>
<zipcode>00530</zipcode>
<box_number/>
<coordinates>
<lon>24.95355311</lon>
<lat>60.18372258</lat>
</coordinates>
<city multilang="true">
<value lang="fi">Helsinki</value>
<value lang="sv">Helsingfors</value>
<value lang="en">Helsinki</value>
<value lang="se">Helsinki</value>
<value lang="ru">Helsinki</value>
</city>
</address>
<email multilang="true">
<value lang="fi">kallion_kirjasto@hel.fi</value>
<value lang="sv">kallion_kirjasto@hel.fi</value>
<value lang="en">kallion_kirjasto@hel.fi</value>
<value lang="se"/>
<value lang="ru"/>
</email>
<name multilang="true">
<value lang="fi">Kallion kirjasto</value>
<value lang="sv">Berghälls bibliotek</value>
<value lang="en">Kallio Library</value>
<value lang="se"/>
<value lang="ru">Библиотека Каллио</value>
</name>
<slug multilang="true">
<value lang="fi">kallio</value>
<value lang="sv">kallio</value>
<value lang="en">kallio</value>
<value lang="se">kallio</value>
<value lang="ru">kallio</value>
</slug>
<region>1001</region>
<provincial_library>396</provincial_library>
</organisation>
</items>
</result>
</ts1:response>
</ts1:getLibraryResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
API documentation: http://avoindata.prh.fi/ytj_en.html
Configuration:
3.id=FI_PILOT.GOV.1019125-0.Demo2Service.searchCompany.v1
3.path=/avoindata.prh.fi/opendata/bis/v1/
3.verb=get
3.response.modurl=true
Service request:
- Method:
GET
- Accept:
text/xml
orapplication/json
- X-XRd-MessageId:
1
- X-XRd-UserId:
test
URL:
http://localhost:8080/rest-adapter-service/Consumer/avoindata.prh.fi/opendata/bis/v1/?totalResults=false&resultsFrom=0&name=asunto&companyRegistrationFrom=2016-02-28
Browser-based access:
http://localhost:8080/rest-adapter-service/Consumer/FI_PILOT.GOV.1019125-0.Demo2Service.searchCompany.v1/?totalResults=false&resultsFrom=0&name=asunto&companyRegistrationFrom=2015-02-28&X-XRd-UserId=test&X-XRd-MessageId=1&X-XRd-NamespaceSerialize=http://x-road.global/producer&X-XRd-NamespacePrefixSerialize=ks&Accept=application/json
Consumer Gateway response:
{
"resultsFrom":0,
"totalResults":-1,
"nextResultsUri":"http://localhost:8080/rest-adapter-service/Consumer/avoindata.prh.fi/opendata/bis/v1?resultsFrom=10&totalResults=false&companyRegistrationFrom=2016-02-28&name=asunto",
"exceptionNoticeUri":null,
"previousResultsUri":null,
"type":"fi.prh.opendata.bis",
"version":1,
"results":[
{
"detailsUri":"http://localhost:8080/rest-adapter-service/Consumer/avoindata.prh.fi/opendata/bis/v1/2786724-5",
"businessId":"2786724-5",
"name":"Asunto Oy Kuusamon Tetra 2",
"registrationDate":"2016-10-06",
"companyForm":"AOY"
},
{
"detailsUri":"http://localhost:8080/rest-adapter-service/Consumer/avoindata.prh.fi/opendata/bis/v1/2786552-2",
"businessId":"2786552-2",
"name":"Asunto Oy Auran Jokihovi",
"registrationDate":"2016-10-06",
"companyForm":"AOY"
},
{
"detailsUri":"http://localhost:8080/rest-adapter-service/Consumer/avoindata.prh.fi/opendata/bis/v1/2786587-2",
"businessId":"2786587-2",
"name":"Asunto Oy Espoon Lintukartano",
"registrationDate":"2016-10-06",
"companyForm":"AOY"
},
{
"detailsUri":"http://localhost:8080/rest-adapter-service/Consumer/avoindata.prh.fi/opendata/bis/v1/2786499-2",
"businessId":"2786499-2",
"name":"Asunto Oy Casa Ora, Espoo",
"registrationDate":"2016-10-06",
"companyForm":"AOY"
},
{
"detailsUri":"http://localhost:8080/rest-adapter-service/Consumer/avoindata.prh.fi/opendata/bis/v1/2786082-8",
"businessId":"2786082-8",
"name":"Asunto Oy Vantaan Neidonkenkä",
"registrationDate":"2016-10-05",
"companyForm":"AOY"
},
{
"detailsUri":"http://localhost:8080/rest-adapter-service/Consumer/avoindata.prh.fi/opendata/bis/v1/2786320-1",
"businessId":"2786320-1",
"name":"Asunto Oy Leppäveden Kytölä",
"registrationDate":"2016-10-05",
"companyForm":"AOY"
},
{
"detailsUri":"http://localhost:8080/rest-adapter-service/Consumer/avoindata.prh.fi/opendata/bis/v1/2786421-2",
"businessId":"2786421-2",
"name":"Asunto Oy Espoon Jaakobinsauva",
"registrationDate":"2016-10-05",
"companyForm":"AOY"
},
{
"detailsUri":"http://localhost:8080/rest-adapter-service/Consumer/avoindata.prh.fi/opendata/bis/v1/2786191-9",
"businessId":"2786191-9",
"name":"Asunto Oy Harjavallan Pistokuja",
"registrationDate":"2016-10-05",
"companyForm":"AOY"
},
{
"detailsUri":"http://localhost:8080/rest-adapter-service/Consumer/avoindata.prh.fi/opendata/bis/v1/2786087-9",
"businessId":"2786087-9",
"name":"Asunto Oy Vantaan Pikkulehdokki",
"registrationDate":"2016-10-05",
"companyForm":"AOY"
},
{
"detailsUri":"http://localhost:8080/rest-adapter-service/Consumer/avoindata.prh.fi/opendata/bis/v1/2785923-7",
"businessId":"2785923-7",
"name":"Asunto Oy Espoon Tapiolan Taika",
"registrationDate":"2016-10-04",
"companyForm":"AOY"
}
]
}
Configuration:
3.id=FI_PILOT.GOV.1019125-0.Demo2Service.searchCompany.v1
3.url=http://avoindata.prh.fi/bis/v1
Service request:
- Method:
POST
- Content-Type:
text/xml
URL:
http://localhost:8080/rest-adapter-service/Provider
<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_PILOT</id:xRoadInstance>
<id:memberClass>GOV</id:memberClass>
<id:memberCode>0245437-2</id:memberCode>
<id:subsystemCode>ConsumerService</id:subsystemCode>
</xrd:client>
<xrd:service id:objectType="SERVICE">
<id:xRoadInstance>FI_PILOT</id:xRoadInstance>
<id:memberClass>GOV</id:memberClass>
<id:memberCode>1019125-0</id:memberCode>
<id:subsystemCode>Demo2Service</id:subsystemCode>
<id:serviceCode>searchCompany</id:serviceCode>
<id:serviceVersion>v1</id:serviceVersion>
</xrd:service>
<xrd:userId>test</xrd:userId>
<xrd:id>0ba036ea-d612-4e74-bf73-59a6f15627c8</xrd:id>
<xrd:protocolVersion>4.0</xrd:protocolVersion>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<test:searchCompany xmlns:test="http://x-road.global/producer">
<test:request>
<totalResults>false</totalResults>
<maxResults>10</maxResults>
<resultsFrom>0</resultsFrom>
<name>asunto</name>
<companyRegistrationFrom>2016-02-28</companyRegistrationFrom>
</test:request>
</test:searchCompany>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
API results URL: http://avoindata.prh.fi/bis/v1?totalResults=false&maxResults=10&resultsFrom=0&name=asunto&companyRegistrationFrom=2015-02-28
Rest Adapter Service response:
<SOAP-ENV:Envelope>
<SOAP-ENV:Header>
<xrd:client id:objectType="SUBSYSTEM">
<id:xRoadInstance>FI_PILOT</id:xRoadInstance>
<id:memberClass>GOV</id:memberClass>
<id:memberCode>0245437-2</id:memberCode>
<id:subsystemCode>ConsumerService</id:subsystemCode>
</xrd:client>
<xrd:service id:objectType="SERVICE">
<id:xRoadInstance>FI_PILOT</id:xRoadInstance>
<id:memberClass>GOV</id:memberClass>
<id:memberCode>1019125-0</id:memberCode>
<id:subsystemCode>Demo2Service</id:subsystemCode>
<id:serviceCode>searchCompany</id:serviceCode>
<id:serviceVersion>v1</id:serviceVersion>
</xrd:service>
<xrd:userId>test</xrd:userId>
<xrd:id>0ba036ea-d612-4e74-bf73-59a6f15627c8</xrd:id>
<xrd:protocolVersion>4.0</xrd:protocolVersion>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<ts1:searchCompanyResponse>
<ts1:request>
<ts1:totalResults>false</ts1:totalResults>
<ts1:maxResults>10</ts1:maxResults>
<ts1:resultsFrom>0</ts1:resultsFrom>
<ts1:name>asunto</ts1:name>
<ts1:companyRegistrationFrom>2016-02-28</ts1:companyRegistrationFrom>
</ts1:request>
<ts1:response>
<ts1:resultsFrom>0</ts1:resultsFrom>
<ts1:totalResults>-1</ts1:totalResults>
<ts1:nextResultsUri>
http://avoindata.prh.fi/opendata/bis/v1?resultsFrom=10&totalResults=false&companyRegistrationFrom=2016-02-28&maxResults=10&name=asunto
</ts1:nextResultsUri>
<ts1:exceptionNoticeUri>null</ts1:exceptionNoticeUri>
<ts1:previousResultsUri>null</ts1:previousResultsUri>
<ts1:type>fi.prh.opendata.bis</ts1:type>
<ts1:version>1</ts1:version>
<ts1:results>
<ts1:detailsUri>http://avoindata.prh.fi/opendata/bis/v1/2786724-5</ts1:detailsUri>
<ts1:businessId>2786724-5</ts1:businessId>
<ts1:name>Asunto Oy Kuusamon Tetra 2</ts1:name>
<ts1:registrationDate>2016-10-06</ts1:registrationDate>
<ts1:companyForm>AOY</ts1:companyForm>
</ts1:results>
<ts1:results>
<ts1:detailsUri>http://avoindata.prh.fi/opendata/bis/v1/2786552-2</ts1:detailsUri>
<ts1:businessId>2786552-2</ts1:businessId>
<ts1:name>Asunto Oy Auran Jokihovi</ts1:name>
<ts1:registrationDate>2016-10-06</ts1:registrationDate>
<ts1:companyForm>AOY</ts1:companyForm>
</ts1:results>
<ts1:results>
<ts1:detailsUri>http://avoindata.prh.fi/opendata/bis/v1/2786587-2</ts1:detailsUri>
<ts1:businessId>2786587-2</ts1:businessId>
<ts1:name>Asunto Oy Espoon Lintukartano</ts1:name>
<ts1:registrationDate>2016-10-06</ts1:registrationDate>
<ts1:companyForm>AOY</ts1:companyForm>
</ts1:results>
<ts1:results>
<ts1:detailsUri>http://avoindata.prh.fi/opendata/bis/v1/2786499-2</ts1:detailsUri>
<ts1:businessId>2786499-2</ts1:businessId>
<ts1:name>Asunto Oy Casa Ora, Espoo</ts1:name>
<ts1:registrationDate>2016-10-06</ts1:registrationDate>
<ts1:companyForm>AOY</ts1:companyForm>
</ts1:results>
<ts1:results>
<ts1:detailsUri>http://avoindata.prh.fi/opendata/bis/v1/2786082-8</ts1:detailsUri>
<ts1:businessId>2786082-8</ts1:businessId>
<ts1:name>Asunto Oy Vantaan Neidonkenkä</ts1:name>
<ts1:registrationDate>2016-10-05</ts1:registrationDate>
<ts1:companyForm>AOY</ts1:companyForm>
</ts1:results>
<ts1:results>
<ts1:detailsUri>http://avoindata.prh.fi/opendata/bis/v1/2786320-1</ts1:detailsUri>
<ts1:businessId>2786320-1</ts1:businessId>
<ts1:name>Asunto Oy Leppäveden Kytölä</ts1:name>
<ts1:registrationDate>2016-10-05</ts1:registrationDate>
<ts1:companyForm>AOY</ts1:companyForm>
</ts1:results>
<ts1:results>
<ts1:detailsUri>http://avoindata.prh.fi/opendata/bis/v1/2786421-2</ts1:detailsUri>
<ts1:businessId>2786421-2</ts1:businessId>
<ts1:name>Asunto Oy Espoon Jaakobinsauva</ts1:name>
<ts1:registrationDate>2016-10-05</ts1:registrationDate>
<ts1:companyForm>AOY</ts1:companyForm>
</ts1:results>
<ts1:results>
<ts1:detailsUri>http://avoindata.prh.fi/opendata/bis/v1/2786191-9</ts1:detailsUri>
<ts1:businessId>2786191-9</ts1:businessId>
<ts1:name>Asunto Oy Harjavallan Pistokuja</ts1:name>
<ts1:registrationDate>2016-10-05</ts1:registrationDate>
<ts1:companyForm>AOY</ts1:companyForm>
</ts1:results>
<ts1:results>
<ts1:detailsUri>http://avoindata.prh.fi/opendata/bis/v1/2786087-9</ts1:detailsUri>
<ts1:businessId>2786087-9</ts1:businessId>
<ts1:name>Asunto Oy Vantaan Pikkulehdokki</ts1:name>
<ts1:registrationDate>2016-10-05</ts1:registrationDate>
<ts1:companyForm>AOY</ts1:companyForm>
</ts1:results>
<ts1:results>
<ts1:detailsUri>http://avoindata.prh.fi/opendata/bis/v1/2785923-7</ts1:detailsUri>
<ts1:businessId>2785923-7</ts1:businessId>
<ts1:name>Asunto Oy Espoon Tapiolan Taika</ts1:name>
<ts1:registrationDate>2016-10-04</ts1:registrationDate>
<ts1:companyForm>AOY</ts1:companyForm>
</ts1:results>
</ts1:response>
</ts1:searchCompanyResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
API documentation: http://avoindata.prh.fi/ytj_en.html
Configuration:
4.id=FI_PILOT.GOV.1019125-0.Demo2Service.getCompany.v1
4.path=/avoindata.prh.fi/opendata/bis/v1/{resourceId}
4.verb=get
4.response.modurl=true
Service request:
- Method:
GET
- Accept:
text/xml
orapplication/json
- X-XRd-MessageId:
1
- X-XRd-UserId:
test
URL:
http://localhost:8080/rest-adapter-service/Consumer/avoindata.prh.fi/opendata/bis/v1/2663307-6
Browser-based access:
http://localhost:8080/rest-adapter-service/Consumer/FI_PILOT.GOV.1019125-0.Demo2Service.getCompany.v1/2663307-6/?X-XRd-UserId=test&X-XRd-MessageId=1&X-XRd-NamespaceSerialize=http://x-road.global/producer&X-XRd-NamespacePrefixSerialize=ks&Accept=application/json
Consumer Gateway response:
{
"resultsFrom":0,
"totalResults":-1,
"nextResultsUri":null,
"exceptionNoticeUri":null,
"previousResultsUri":null,
"type":"fi.prh.opendata.bis",
"version":1,
"results":{
"detailsUri":null,
"registeredEntries":[
{
"statusDate":"2015-04-09",
"endDate":null,
"authority":2,
"registrationDate":"2015-04-09",
"description":"Ei rekisteröity perustaminen",
"language":"FI",
"register":1,
"status":1
},
{
"statusDate":"2015-04-09",
"endDate":null,
"authority":2,
"registrationDate":"2015-04-09",
"description":"Oregistrerat grundande",
"language":"SE",
"register":1,
"status":1
},
{
"statusDate":"2015-04-09",
"endDate":null,
"authority":2,
"registrationDate":"2015-04-09",
"description":"Start-up not registered",
"language":"EN",
"register":1,
"status":1
},
{
"statusDate":"2014-12-30",
"endDate":"2015-04-08",
"authority":2,
"registrationDate":"2014-12-30",
"description":"Rekisteröimätön",
"language":"FI",
"register":1,
"status":2
},
{
"statusDate":"2014-12-30",
"endDate":"2015-04-08",
"authority":2,
"registrationDate":"2014-12-30",
"description":"Oregistrerad",
"language":"SE",
"register":1,
"status":2
},
{
"statusDate":"2014-12-30",
"endDate":"2015-04-08",
"authority":2,
"registrationDate":"2014-12-30",
"description":"Unregistered",
"language":"EN",
"register":1,
"status":2
}
],
"businessId":"2663307-6",
"companyForms":[
{
"endDate":null,
"name":"Osakeyhtiö",
"registrationDate":"2014-12-30",
"language":"FI",
"source":3,
"type":"OY",
"version":1
},
{
"endDate":null,
"name":"Aktiebolag",
"registrationDate":"2014-12-30",
"language":"SE",
"source":3,
"type":"AB",
"version":1
},
{
"endDate":null,
"name":"Limited company",
"registrationDate":"2014-12-30",
"language":"EN",
"source":3,
"type":null,
"version":1
}
],
"name":null,
"registrationDate":"2014-12-30",
"businessIdChanges":{
"reason":0,
"change":0,
"changeDate":"2015-05-07",
"description":null,
"language":null,
"source":3,
"newBusinessId":null,
"oldBusinessId":"2663307-6"
},
"companyForm":"OY"
}
}
Configuration:
4.id=FI_PILOT.GOV.1019125-0.Demo2Service.getCompany.v1
4.url=http://avoindata.prh.fi/bis/v1
Service request:
- Method:
POST
- Content-Type:
text/xml
URL:
http://localhost:8080/rest-adapter-service/Provider
<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_PILOT</id:xRoadInstance>
<id:memberClass>GOV</id:memberClass>
<id:memberCode>0245437-2</id:memberCode>
<id:subsystemCode>ConsumerService</id:subsystemCode>
</xrd:client>
<xrd:service id:objectType="SERVICE">
<id:xRoadInstance>FI_PILOT</id:xRoadInstance>
<id:memberClass>GOV</id:memberClass>
<id:memberCode>1019125-0</id:memberCode>
<id:subsystemCode>Demo2Service</id:subsystemCode>
<id:serviceCode>getCompany</id:serviceCode>
<id:serviceVersion>v1</id:serviceVersion>
</xrd:service>
<xrd:userId>test</xrd:userId>
<xrd:id>0ba036ea-d612-4e74-bf73-59a6f15627c8</xrd:id>
<xrd:protocolVersion>4.0</xrd:protocolVersion>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<test:getCompany xmlns:test="http://x-road.global/producer">
<test:request>
<resourceId>2663307-6</resourceId>
</test:request>
</test:getCompany>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
API response URL: http://avoindata.prh.fi/bis/v1/2663307-6
Rest Adapter Service response:
<SOAP-ENV:Envelope>
<SOAP-ENV:Header>
<xrd:client id:objectType="SUBSYSTEM">
<id:xRoadInstance>FI_PILOT</id:xRoadInstance>
<id:memberClass>GOV</id:memberClass>
<id:memberCode>0245437-2</id:memberCode>
<id:subsystemCode>ConsumerService</id:subsystemCode>
</xrd:client>
<xrd:service id:objectType="SERVICE">
<id:xRoadInstance>FI_PILOT</id:xRoadInstance>
<id:memberClass>GOV</id:memberClass>
<id:memberCode>1019125-0</id:memberCode>
<id:subsystemCode>Demo2Service</id:subsystemCode>
<id:serviceCode>getCompany</id:serviceCode>
<id:serviceVersion>v1</id:serviceVersion>
</xrd:service>
<xrd:userId>test</xrd:userId>
<xrd:id>0ba036ea-d612-4e74-bf73-59a6f15627c8</xrd:id>
<xrd:protocolVersion>4.0</xrd:protocolVersion>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<ts1:getCompanyResponse>
<ts1:request>
<ts1:resourceId>2663307-6</ts1:resourceId>
</ts1:request>
<ts1:response>
<ts1:resultsFrom>0</ts1:resultsFrom>
<ts1:totalResults>-1</ts1:totalResults>
<ts1:nextResultsUri>null</ts1:nextResultsUri>
<ts1:exceptionNoticeUri>null</ts1:exceptionNoticeUri>
<ts1:previousResultsUri>null</ts1:previousResultsUri>
<ts1:type>fi.prh.opendata.bis</ts1:type>
<ts1:version>1</ts1:version>
<ts1:results>
<ts1:detailsUri>null</ts1:detailsUri>
<ts1:registeredEntries>
<ts1:statusDate>2015-04-09</ts1:statusDate>
<ts1:endDate>null</ts1:endDate>
<ts1:authority>2</ts1:authority>
<ts1:registrationDate>2015-04-09</ts1:registrationDate>
<ts1:description>Ei rekisteröity perustaminen</ts1:description>
<ts1:language>FI</ts1:language>
<ts1:register>1</ts1:register>
<ts1:status>1</ts1:status>
</ts1:registeredEntries>
<ts1:registeredEntries>
<ts1:statusDate>2015-04-09</ts1:statusDate>
<ts1:endDate>null</ts1:endDate>
<ts1:authority>2</ts1:authority>
<ts1:registrationDate>2015-04-09</ts1:registrationDate>
<ts1:description>Oregistrerat grundande</ts1:description>
<ts1:language>SE</ts1:language>
<ts1:register>1</ts1:register>
<ts1:status>1</ts1:status>
</ts1:registeredEntries>
<ts1:registeredEntries>
<ts1:statusDate>2015-04-09</ts1:statusDate>
<ts1:endDate>null</ts1:endDate>
<ts1:authority>2</ts1:authority>
<ts1:registrationDate>2015-04-09</ts1:registrationDate>
<ts1:description>Start-up not registered</ts1:description>
<ts1:language>EN</ts1:language>
<ts1:register>1</ts1:register>
<ts1:status>1</ts1:status>
</ts1:registeredEntries>
<ts1:registeredEntries>
<ts1:statusDate>2014-12-30</ts1:statusDate>
<ts1:endDate>2015-04-08</ts1:endDate>
<ts1:authority>2</ts1:authority>
<ts1:registrationDate>2014-12-30</ts1:registrationDate>
<ts1:description>Rekisteröimätön</ts1:description>
<ts1:language>FI</ts1:language>
<ts1:register>1</ts1:register>
<ts1:status>2</ts1:status>
</ts1:registeredEntries>
<ts1:registeredEntries>
<ts1:statusDate>2014-12-30</ts1:statusDate>
<ts1:endDate>2015-04-08</ts1:endDate>
<ts1:authority>2</ts1:authority>
<ts1:registrationDate>2014-12-30</ts1:registrationDate>
<ts1:description>Oregistrerad</ts1:description>
<ts1:language>SE</ts1:language>
<ts1:register>1</ts1:register>
<ts1:status>2</ts1:status>
</ts1:registeredEntries>
<ts1:registeredEntries>
<ts1:statusDate>2014-12-30</ts1:statusDate>
<ts1:endDate>2015-04-08</ts1:endDate>
<ts1:authority>2</ts1:authority>
<ts1:registrationDate>2014-12-30</ts1:registrationDate>
<ts1:description>Unregistered</ts1:description>
<ts1:language>EN</ts1:language>
<ts1:register>1</ts1:register>
<ts1:status>2</ts1:status>
</ts1:registeredEntries>
<ts1:businessId>2663307-6</ts1:businessId>
<ts1:companyForms>
<ts1:endDate>null</ts1:endDate>
<ts1:name>Osakeyhtiö</ts1:name>
<ts1:registrationDate>2014-12-30</ts1:registrationDate>
<ts1:language>FI</ts1:language>
<ts1:source>3</ts1:source>
<ts1:type>OY</ts1:type>
<ts1:version>1</ts1:version>
</ts1:companyForms>
<ts1:companyForms>
<ts1:endDate>null</ts1:endDate>
<ts1:name>Aktiebolag</ts1:name>
<ts1:registrationDate>2014-12-30</ts1:registrationDate>
<ts1:language>SE</ts1:language>
<ts1:source>3</ts1:source>
<ts1:type>AB</ts1:type>
<ts1:version>1</ts1:version>
</ts1:companyForms>
<ts1:companyForms>
<ts1:endDate>null</ts1:endDate>
<ts1:name>Limited company</ts1:name>
<ts1:registrationDate>2014-12-30</ts1:registrationDate>
<ts1:language>EN</ts1:language>
<ts1:source>3</ts1:source>
<ts1:type>null</ts1:type>
<ts1:version>1</ts1:version>
</ts1:companyForms>
<ts1:companyForm>OY</ts1:companyForm>
<ts1:name>null</ts1:name>
<ts1:registrationDate>2014-12-30</ts1:registrationDate>
<ts1:businessIdChanges>
<ts1:reason>0</ts1:reason>
<ts1:change>0</ts1:change>
<ts1:changeDate>2015-05-07</ts1:changeDate>
<ts1:description>null</ts1:description>
<ts1:language>null</ts1:language>
<ts1:source>3</ts1:source>
<ts1:newBusinessId>null</ts1:newBusinessId>
<ts1:oldBusinessId>2663307-6</ts1:oldBusinessId>
</ts1:businessIdChanges>
</ts1:results>
</ts1:response>
</ts1:getCompanyResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
API documentation: http://api.finto.fi/
Configuration:
5.id=FI_PILOT.GOV.1019125-0.Demo2Service.fintoService.v1
5.path=/api.finto.fi/rest/v1/search/
5.verb=get
Service request:
- Method:
GET
- Accept:
text/xml
orapplication/json
- X-XRd-MessageId:
1
- X-XRd-UserId:
test
URL:
http://localhost:8080/rest-adapter-service/Consumer/api.finto.fi/rest/v1/search/?query=cat&lang=en
Browser-based access:
http://localhost:8080/rest-adapter-service/Consumer/FI_PILOT.GOV.1019125-0.Demo2Service.fintoService.v1/?query=cat&lang=en&X-XRd-UserId=test&X-XRd-MessageId=1&X-XRd-NamespaceSerialize=http://x-road.global/producer&X-XRd-NamespacePrefixSerialize=ks
Consumer Gateway response:
{
"@context":{
"hiddenLabel":"skos:hiddenLabel",
"prefLabel":"skos:prefLabel",
"skos":"http://www.w3.org/2004/02/skos/core#",
"isothes":"http://purl.org/iso25964/skos-thes#",
"onki":"http://schema.onki.fi/onki#",
"altLabel":"skos:altLabel",
"type":"@type",
"@language":"en",
"uri":"@id",
"results":{
"@container":"@list",
"@id":"onki:results"
}
},
"uri":"",
"results":[
{
"notation":"cat",
"prefLabel":"Catalan language",
"vocab":"lexvo",
"type":[
"skos:Concept",
"http://lexvo.org/ontology#Language"
],
"lang":"en",
"uri":"http://lexvo.org/id/iso639-3/cat"
},
{
"notation":"cat",
"prefLabel":"???????",
"vocab":"lexvo",
"type":[
"skos:Concept",
"http://lexvo.org/ontology#Language"
],
"lang":"en-Dsrt",
"uri":"http://lexvo.org/id/iso639-3/cat"
},
{
"notation":"34B12",
"prefLabel":"cat",
"vocab":"ic",
"type":"skos:Concept",
"lang":"en",
"uri":"http://iconclass.org/34B12"
},
{
"exvocab":"yso",
"prefLabel":"cat",
"vocab":"afo",
"type":"skos:Concept",
"lang":"en",
"uri":"http://www.yso.fi/onto/yso/p19378"
},
{
"prefLabel":"cat",
"vocab":"afo",
"type":[
"skos:Concept",
"http://www.yso.fi/onto/afo-meta/Concept"
],
"lang":"en",
"uri":"http://www.yso.fi/onto/afo/p1287"
},
{
"exvocab":"yso",
"prefLabel":"cat",
"vocab":"juho",
"type":"skos:Concept",
"lang":"en",
"uri":"http://www.yso.fi/onto/yso/p19378"
},
{
"exvocab":"yso",
"prefLabel":"cat",
"vocab":"jupo",
"type":"skos:Concept",
"lang":"en",
"uri":"http://www.yso.fi/onto/yso/p19378"
},
{
"exvocab":"yso",
"prefLabel":"cat",
"vocab":"kauno",
"type":"skos:Concept",
"lang":"en",
"uri":"http://www.yso.fi/onto/yso/p19378"
},
{
"exvocab":"yso",
"prefLabel":"cat",
"vocab":"keko",
"type":"skos:Concept",
"lang":"en",
"uri":"http://www.yso.fi/onto/yso/p19378"
},
{
"exvocab":"yso",
"prefLabel":"cat",
"vocab":"kito",
"type":"skos:Concept",
"lang":"en",
"uri":"http://www.yso.fi/onto/yso/p19378"
},
{
"prefLabel":"cat",
"vocab":"koko",
"type":[
"skos:Concept",
"http://www.yso.fi/onto/afo-meta/Concept",
"http://www.yso.fi/onto/kauno-meta/Concept",
"http://www.yso.fi/onto/yso-meta/Concept"
],
"lang":"en",
"uri":"http://www.yso.fi/onto/koko/p37252"
},
{
"exvocab":"yso",
"prefLabel":"cat",
"vocab":"kto",
"type":"skos:Concept",
"lang":"en",
"uri":"http://www.yso.fi/onto/yso/p19378"
},
{
"exvocab":"yso",
"prefLabel":"cat",
"vocab":"kulo",
"type":"skos:Concept",
"lang":"en",
"uri":"http://www.yso.fi/onto/yso/p19378"
},
{
"exvocab":"yso",
"prefLabel":"cat",
"vocab":"liito",
"type":"skos:Concept",
"lang":"en",
"uri":"http://www.yso.fi/onto/yso/p19378"
},
{
"exvocab":"yso",
"prefLabel":"cat",
"vocab":"mero",
"type":"skos:Concept",
"lang":"en",
"uri":"http://www.yso.fi/onto/yso/p19378"
},
{
"hiddenLabel":"Cat",
"prefLabel":"Cats",
"vocab":"mesh",
"type":"skos:Concept",
"lang":"en",
"uri":"http://www.yso.fi/onto/mesh/D002415"
},
{
"exvocab":"yso",
"prefLabel":"cat",
"vocab":"muso",
"type":"skos:Concept",
"lang":"en",
"uri":"http://www.yso.fi/onto/yso/p19378"
},
{
"exvocab":"yso",
"prefLabel":"cat",
"vocab":"pto",
"type":"skos:Concept",
"lang":"en",
"uri":"http://www.yso.fi/onto/yso/p19378"
},
{
"exvocab":"yso",
"prefLabel":"cat",
"vocab":"puho",
"type":"skos:Concept",
"lang":"en",
"uri":"http://www.yso.fi/onto/yso/p19378"
},
{
"exvocab":"yso",
"prefLabel":"cat",
"vocab":"maotao",
"type":"skos:Concept",
"lang":"en",
"uri":"http://www.yso.fi/onto/yso/p19378"
},
{
"prefLabel":"cat",
"vocab":"tero",
"type":"skos:Concept",
"lang":"en",
"uri":"http://www.yso.fi/onto/tero/p19378"
},
{
"exvocab":"yso",
"prefLabel":"cat",
"vocab":"tsr",
"type":"skos:Concept",
"lang":"en",
"uri":"http://www.yso.fi/onto/yso/p19378"
},
{
"exvocab":"yso",
"prefLabel":"cat",
"vocab":"valo",
"type":"skos:Concept",
"lang":"en",
"uri":"http://www.yso.fi/onto/yso/p19378"
},
{
"prefLabel":"cat",
"vocab":"yso",
"type":[
"skos:Concept",
"http://www.yso.fi/onto/yso-meta/Concept"
],
"lang":"en",
"uri":"http://www.yso.fi/onto/yso/p19378"
}
]
}
Configuration:
5.id=FI_PILOT.GOV.1019125-0.Demo2Service.fintoService.v1
5.url=http://api.finto.fi/rest/v1/search
Service request:
- Method:
POST
- Content-Type:
text/xml
URL:
http://localhost:8080/rest-adapter-service/Provider
<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_PILOT</id:xRoadInstance>
<id:memberClass>GOV</id:memberClass>
<id:memberCode>0245437-2</id:memberCode>
<id:subsystemCode>ConsumerService</id:subsystemCode>
</xrd:client>
<xrd:service id:objectType="SERVICE">
<id:xRoadInstance>FI_PILOT</id:xRoadInstance>
<id:memberClass>GOV</id:memberClass>
<id:memberCode>1019125-0</id:memberCode>
<id:subsystemCode>Demo2Service</id:subsystemCode>
<id:serviceCode>fintoService</id:serviceCode>
<id:serviceVersion>v1</id:serviceVersion>
</xrd:service>
<xrd:userId>test</xrd:userId>
<xrd:id>0ba036ea-d612-4e74-bf73-59a6f15627c8</xrd:id>
<xrd:protocolVersion>4.0</xrd:protocolVersion>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<test:fintoService xmlns:test="http://x-road.global/producer">
<test:request>
<test:query>cat</test:query>
<test:lang>en</test:lang>
</test:request>
</test:fintoService>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
API response URL: http://api.finto.fi/rest/v1/search?query=cat&lang=en
Rest Adapter Service response:
<SOAP-ENV:Envelope>
<SOAP-ENV:Header>
<xrd:client id:objectType="SUBSYSTEM">
<id:xRoadInstance>FI_PILOT</id:xRoadInstance>
<id:memberClass>GOV</id:memberClass>
<id:memberCode>0245437-2</id:memberCode>
<id:subsystemCode>ConsumerService</id:subsystemCode>
</xrd:client>
<xrd:service id:objectType="SERVICE">
<id:xRoadInstance>FI_PILOT</id:xRoadInstance>
<id:memberClass>GOV</id:memberClass>
<id:memberCode>1019125-0</id:memberCode>
<id:subsystemCode>Demo2Service</id:subsystemCode>
<id:serviceCode>fintoService</id:serviceCode>
<id:serviceVersion>v1</id:serviceVersion>
</xrd:service>
<xrd:userId>test</xrd:userId>
<xrd:id>0ba036ea-d612-4e74-bf73-59a6f15627c8</xrd:id>
<xrd:protocolVersion>4.0</xrd:protocolVersion>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<ts1:fintoServiceResponse>
<ts1:request>
<ts1:query>cat</ts1:query>
<ts1:lang>en</ts1:lang>
</ts1:request>
<ts1:response>
<ts1:__at__context>
<ts1:hiddenLabel>skos:hiddenLabel</ts1:hiddenLabel>
<ts1:__at__language>en</ts1:__at__language>
<ts1:prefLabel>skos:prefLabel</ts1:prefLabel>
<ts1:skos>http://www.w3.org/2004/02/skos/core#</ts1:skos>
<ts1:isothes>http://purl.org/iso25964/skos-thes#</ts1:isothes>
<ts1:onki>http://schema.onki.fi/onki#</ts1:onki>
<ts1:altLabel>skos:altLabel</ts1:altLabel>
<ts1:type>@type</ts1:type>
<ts1:uri>@id</ts1:uri>
<ts1:results>
<ts1:__at__id>onki:results</ts1:__at__id>
<ts1:__at__container>@list</ts1:__at__container>
</ts1:results>
</ts1:__at__context>
<ts1:uri/>
<ts1:results>
<ts1:notation>cat</ts1:notation>
<ts1:prefLabel>Catalan language</ts1:prefLabel>
<ts1:vocab>lexvo</ts1:vocab>
<ts1:type>skos:Concept</ts1:type>
<ts1:type>http://lexvo.org/ontology#Language</ts1:type>
<ts1:lang>en</ts1:lang>
<ts1:uri>http://lexvo.org/id/iso639-3/cat</ts1:uri>
</ts1:results>
<ts1:results>
<ts1:notation>cat</ts1:notation>
<ts1:prefLabel>???????</ts1:prefLabel>
<ts1:vocab>lexvo</ts1:vocab>
<ts1:type>skos:Concept</ts1:type>
<ts1:type>http://lexvo.org/ontology#Language</ts1:type>
<ts1:lang>en-Dsrt</ts1:lang>
<ts1:uri>http://lexvo.org/id/iso639-3/cat</ts1:uri>
</ts1:results>
<ts1:results>
<ts1:notation>34B12</ts1:notation>
<ts1:prefLabel>cat</ts1:prefLabel>
<ts1:vocab>ic</ts1:vocab>
<ts1:type>skos:Concept</ts1:type>
<ts1:lang>en</ts1:lang>
<ts1:uri>http://iconclass.org/34B12</ts1:uri>
</ts1:results>
<ts1:results>
<ts1:exvocab>yso</ts1:exvocab>
<ts1:prefLabel>cat</ts1:prefLabel>
<ts1:vocab>afo</ts1:vocab>
<ts1:type>skos:Concept</ts1:type>
<ts1:lang>en</ts1:lang>
<ts1:uri>http://www.yso.fi/onto/yso/p19378</ts1:uri>
</ts1:results>
<ts1:results>
<ts1:prefLabel>cat</ts1:prefLabel>
<ts1:vocab>afo</ts1:vocab>
<ts1:type>skos:Concept</ts1:type>
<ts1:type>http://www.yso.fi/onto/afo-meta/Concept</ts1:type>
<ts1:lang>en</ts1:lang>
<ts1:uri>http://www.yso.fi/onto/afo/p1287</ts1:uri>
</ts1:results>
<ts1:results>
<ts1:exvocab>yso</ts1:exvocab>
<ts1:prefLabel>cat</ts1:prefLabel>
<ts1:vocab>juho</ts1:vocab>
<ts1:type>skos:Concept</ts1:type>
<ts1:lang>en</ts1:lang>
<ts1:uri>http://www.yso.fi/onto/yso/p19378</ts1:uri>
</ts1:results>
<ts1:results>
<ts1:exvocab>yso</ts1:exvocab>
<ts1:prefLabel>cat</ts1:prefLabel>
<ts1:vocab>jupo</ts1:vocab>
<ts1:type>skos:Concept</ts1:type>
<ts1:lang>en</ts1:lang>
<ts1:uri>http://www.yso.fi/onto/yso/p19378</ts1:uri>
</ts1:results>
<ts1:results>
<ts1:exvocab>yso</ts1:exvocab>
<ts1:prefLabel>cat</ts1:prefLabel>
<ts1:vocab>kauno</ts1:vocab>
<ts1:type>skos:Concept</ts1:type>
<ts1:lang>en</ts1:lang>
<ts1:uri>http://www.yso.fi/onto/yso/p19378</ts1:uri>
</ts1:results>
<ts1:results>
<ts1:exvocab>yso</ts1:exvocab>
<ts1:prefLabel>cat</ts1:prefLabel>
<ts1:vocab>keko</ts1:vocab>
<ts1:type>skos:Concept</ts1:type>
<ts1:lang>en</ts1:lang>
<ts1:uri>http://www.yso.fi/onto/yso/p19378</ts1:uri>
</ts1:results>
<ts1:results>
<ts1:exvocab>yso</ts1:exvocab>
<ts1:prefLabel>cat</ts1:prefLabel>
<ts1:vocab>kito</ts1:vocab>
<ts1:type>skos:Concept</ts1:type>
<ts1:lang>en</ts1:lang>
<ts1:uri>http://www.yso.fi/onto/yso/p19378</ts1:uri>
</ts1:results>
<ts1:results>
<ts1:prefLabel>cat</ts1:prefLabel>
<ts1:vocab>koko</ts1:vocab>
<ts1:type>skos:Concept</ts1:type>
<ts1:type>http://www.yso.fi/onto/afo-meta/Concept</ts1:type>
<ts1:type>http://www.yso.fi/onto/kauno-meta/Concept</ts1:type>
<ts1:type>http://www.yso.fi/onto/yso-meta/Concept</ts1:type>
<ts1:lang>en</ts1:lang>
<ts1:uri>http://www.yso.fi/onto/koko/p37252</ts1:uri>
</ts1:results>
<ts1:results>
<ts1:exvocab>yso</ts1:exvocab>
<ts1:prefLabel>cat</ts1:prefLabel>
<ts1:vocab>kto</ts1:vocab>
<ts1:type>skos:Concept</ts1:type>
<ts1:lang>en</ts1:lang>
<ts1:uri>http://www.yso.fi/onto/yso/p19378</ts1:uri>
</ts1:results>
<ts1:results>
<ts1:exvocab>yso</ts1:exvocab>
<ts1:prefLabel>cat</ts1:prefLabel>
<ts1:vocab>kulo</ts1:vocab>
<ts1:type>skos:Concept</ts1:type>
<ts1:lang>en</ts1:lang>
<ts1:uri>http://www.yso.fi/onto/yso/p19378</ts1:uri>
</ts1:results>
<ts1:results>
<ts1:exvocab>yso</ts1:exvocab>
<ts1:prefLabel>cat</ts1:prefLabel>
<ts1:vocab>liito</ts1:vocab>
<ts1:type>skos:Concept</ts1:type>
<ts1:lang>en</ts1:lang>
<ts1:uri>http://www.yso.fi/onto/yso/p19378</ts1:uri>
</ts1:results>
<ts1:results>
<ts1:exvocab>yso</ts1:exvocab>
<ts1:prefLabel>cat</ts1:prefLabel>
<ts1:vocab>mero</ts1:vocab>
<ts1:type>skos:Concept</ts1:type>
<ts1:lang>en</ts1:lang>
<ts1:uri>http://www.yso.fi/onto/yso/p19378</ts1:uri>
</ts1:results>
<ts1:results>
<ts1:hiddenLabel>Cat</ts1:hiddenLabel>
<ts1:prefLabel>Cats</ts1:prefLabel>
<ts1:vocab>mesh</ts1:vocab>
<ts1:type>skos:Concept</ts1:type>
<ts1:lang>en</ts1:lang>
<ts1:uri>http://www.yso.fi/onto/mesh/D002415</ts1:uri>
</ts1:results>
<ts1:results>
<ts1:exvocab>yso</ts1:exvocab>
<ts1:prefLabel>cat</ts1:prefLabel>
<ts1:vocab>muso</ts1:vocab>
<ts1:type>skos:Concept</ts1:type>
<ts1:lang>en</ts1:lang>
<ts1:uri>http://www.yso.fi/onto/yso/p19378</ts1:uri>
</ts1:results>
<ts1:results>
<ts1:exvocab>yso</ts1:exvocab>
<ts1:prefLabel>cat</ts1:prefLabel>
<ts1:vocab>pto</ts1:vocab>
<ts1:type>skos:Concept</ts1:type>
<ts1:lang>en</ts1:lang>
<ts1:uri>http://www.yso.fi/onto/yso/p19378</ts1:uri>
</ts1:results>
<ts1:results>
<ts1:exvocab>yso</ts1:exvocab>
<ts1:prefLabel>cat</ts1:prefLabel>
<ts1:vocab>puho</ts1:vocab>
<ts1:type>skos:Concept</ts1:type>
<ts1:lang>en</ts1:lang>
<ts1:uri>http://www.yso.fi/onto/yso/p19378</ts1:uri>
</ts1:results>
<ts1:results>
<ts1:exvocab>yso</ts1:exvocab>
<ts1:prefLabel>cat</ts1:prefLabel>
<ts1:vocab>maotao</ts1:vocab>
<ts1:type>skos:Concept</ts1:type>
<ts1:lang>en</ts1:lang>
<ts1:uri>http://www.yso.fi/onto/yso/p19378</ts1:uri>
</ts1:results>
<ts1:results>
<ts1:prefLabel>cat</ts1:prefLabel>
<ts1:vocab>tero</ts1:vocab>
<ts1:type>skos:Concept</ts1:type>
<ts1:lang>en</ts1:lang>
<ts1:uri>http://www.yso.fi/onto/tero/p19378</ts1:uri>
</ts1:results>
<ts1:results>
<ts1:exvocab>yso</ts1:exvocab>
<ts1:prefLabel>cat</ts1:prefLabel>
<ts1:vocab>tsr</ts1:vocab>
<ts1:type>skos:Concept</ts1:type>
<ts1:lang>en</ts1:lang>
<ts1:uri>http://www.yso.fi/onto/yso/p19378</ts1:uri>
</ts1:results>
<ts1:results>
<ts1:exvocab>yso</ts1:exvocab>
<ts1:prefLabel>cat</ts1:prefLabel>
<ts1:vocab>valo</ts1:vocab>
<ts1:type>skos:Concept</ts1:type>
<ts1:lang>en</ts1:lang>
<ts1:uri>http://www.yso.fi/onto/yso/p19378</ts1:uri>
</ts1:results>
<ts1:results>
<ts1:prefLabel>cat</ts1:prefLabel>
<ts1:vocab>yso</ts1:vocab>
<ts1:type>skos:Concept</ts1:type>
<ts1:type>http://www.yso.fi/onto/yso-meta/Concept</ts1:type>
<ts1:lang>en</ts1:lang>
<ts1:uri>http://www.yso.fi/onto/yso/p19378</ts1:uri>
</ts1:results>
</ts1:response>
</ts1:fintoServiceResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>