REST Gateway – REST- tuki X

REST Gateway – RESTtuki X-Roadiin
Petteri Kivimäki
Kansallisen palveluväylän tekninen työpaja
22.5.2015 Espoo
Sisältö
• Lähtökohdat
• Vaatimukset REST-tuelle
• REST Gateway
Lähtökohdat
• Ei suoraan X-Road yhteensopivia
valmiskomponentteja tarjolla
• REST-SOAP-konversion toteutus sovitinpalvelussa
– Toteutus järjestelmäkohtainen
• Samat toiminnallisuudet toteutetaan moneen kertaan eri
järjestelmien kohdalla
– Suurin osa toteutuksesta ei sidoksissa mihinkään tiettyyn
järjestelmään
• Suurin osa järjestelmistä voisi hyödyntää samaa pohjaa
Palveluntarjoaja
Palvelun hyödyntäjä
Vaatimukset REST-tuelle
• Must have -vaatimukset
– REST / JSON –palveluiden julkaisu X-Road yhteensopivina
SOAP-palveluina, sis. WSDL-kuvaus
– X-Roadin SOAP-palveluiden kutsu REST / JSON –
asiakasohjelmista
– Liityntäpalvelimella julkaistavien WSDL-kuvausten pitää
vastata liitettävää rajapintaa
• Nice to have –vaatimukset
– Rajapintakuvausten automaattinen RAML – WSDL -konversio
REST Gateway
• Valmiskomponentti
– Konfiguroitava – käyttöönotto ei edellytä koodausta
– Kustomoitavissa tarvittaessa
– Liityntäpalvelimesta erillinen
• Toteuttaa REST-rajapintojen X-Road-integraatioissa
tarvittavat yleisimmät ominaisuudet
– Keskeisimmät ominaisuudet konfiguroitavissa palvelu- ja
järjestelmäkohtaisesti
– Aivan kaikkea ei voi konfiguroida, vaan joissakin tapauksissa
muutokset voivat edellyttää koodausta
• Muutokset ohjelmistokehyksen kautta
REST Gateway v0.0.6
REST Gateway v0.0.6
• Provider Gateway
– REST / JSON –palveluiden (JSON, JSON-LD, XML) julkaisu XRoad yhteensopivina SOAP-palveluina
• Consumer Gateway
– X-Roadin SOAP-palveluiden kutsu REST / JSON –
asiakasohjelmista
• Automaattiset konversiot:
– JSON -> XML
– XML -> JSON
• Uusien palveluiden lisääminen konfiguraation kautta ilman
koodimuutoksia
• Toteuttaa X-Road v6 beta SOAP -profiilin
REST Gateway v0.0.6
• Provider Gateway
– HTTP GET, POST, PUT and DELETE tuettuja
– WSDL-kuvaus luotava manuaalisesti
– REST-pavelun palauttama vastaussanoma voidaan kuljettaa
SOAP-viesti body-osassa tai liitteenä
– X-Roadin SOAP-otsikkotiedot voidaan välittää RESTpalvelullle HTTP-otsikkotietojen kautta
• X-XRd-Client, X-XRd-Service, X-XRd-UserId, X-XRd-MessageId
Provider Gateway v0.0.6
• Provider Gateway ottaa vastaan X-Road v6 beta –
version SOAP-profiilin mukaisia sanomia ja lisää XMLsanoman request-elementin sisältämät parametrit
REST-palvelun URL-osoitteen perään.
Provider Gateway v0.0.6
• REST-palvelulle lähetettävän HTTP-pyynnön bodyosassa kuljetettava data sijoitetaan SOAP-sanoman
liitteeksi, esim. HTTP POST-pyyntö:
Consumer Gateway v0.0.6
• Consumer Gateway
–
–
–
–
Täysi tuki Provider Gateway:n kautta julkaistuille palveluille
Natiivien SOAP-palveluiden kohdalla tiettyjä rajoituksia
HTTP GET, POST, PUT ja DELETE –tuki
Vastaussanoman tyyppi määriteltävissä Accept-otsikon kautta
• text/xml, application/json
– X-Roadin SOAP-otsikkotiedot voidaan lähettää HTTPotsikoiden kautta
• X-XRd-UserId, X-XRd-MessageId
– Vastaussanomien sisältämien linkkien uudelleenkirjoitus
– X-Road palveluiden kutsu internet-selaimen kautta
Consumer Gateway v0.0.6
• Consumer Gateway ottaa vastaan HTTP-pyyntöjä ja
muuntaa ne X-Road v6 beta –version mukaisiksi
SOAP-sanomiksi.
Consumer Gateway v0.0.6
• HTTP-pyynnön body-osassa vastaanotettu data
sijoitetaan SOAP-sanoman liitteeksi, esim. HTTP
POST-pyyntö:
Demo
• Live demo…
Linkkejä
• REST Gateway GitHub:issa
– https://github.com/educloudalliance/xroad-rest-gateway
Kysymyksiä?
Petteri Kivimäki
Järjestelmäpäällikkö
Väestörekisterikeskus
petteri.kivimaki@vrk.fi
puh: 0295 535 027, GSM: 050 593 1710