Julkishallinnon perustietovarantojen rajapinnat (PERA) -työryhmä

Samankaltaiset tiedostot
Julkishallinnon perustietovarantojen rajapinnat (PERA) -työryhmä

Julkishallinnon perustietovarantojen rajapinnat (PERA) - työryhmä

Julkishallinnon perustietovarantojen rajapinnat (PERA) -työryhmä

Julkishallinnon perustietovarantojen rajapinnat (PERA) -työryhmä

Tiedonsiirto- ja rajapintastandardit

Julkishallinnon perustietovarantojen rajapinnat (PERA) -työryhmä

Julkishallinnon perustietovarantojen rajapinnat (PERA) -työryhmä

Julkishallinnon perustietovarantojen rajapinnat (PERA) -työryhmä

Attribuutti-kyselypalvelu

Muutokset suoran sanoma-asioinnin webservicepalvelun

VIRANOMAISEN PALUUKANAVA WS API. Suomi.fi-viestit julkinen rajapinta

Varmennepalvelu Rajapintakuvaus Kansallisen tulorekisterin perustamishanke

Järjestelmäarkkitehtuuri (TK081702)

sertifikaattiratkaisu Apitamopki

VIRANOMAISEN PALUUKANAVA WS API. Suomi.fi-viestit julkinen rajapinta

REST an idealistic model or a realistic solution?

Web Service torilla tavataan!

Tekninen rajapinta - Soveltamisohje Kansallisen tulorekisterin perustamishanke

SAMLINK VARMENNEPALVELU PALVELUKUVAUS OHJELMISTOTALOILLE

Rajapintakuvaus Liikenneluvat

Visma Nova Webservice Versio 1.1 /

Varmennepalvelu Rajapintakuvaus Tulorekisteriyksikkö

Vaatimusmäärittely Ohjelma-ajanvälitys komponentti

Sosiaalihuollon asiakastiedon arkiston validointipalvelu. Käyttöohje

Julkisen hallinnon yhteinen kokonaisarkkitehtuuri

Toimintaympäristön kuvaus. LTC-Otso Myyjän työkalu (POC)

T2V2 Vaaratilanneilmoitussanomakuvaus

TEKNINEN MÄÄRITTELY. Matkahuollon osoitekorttihaun rajapinta. Ismo Koskinen

Julkinen sanomarajapinta ja

Visma Software Oy

Aditro Tikon ostolaskujen käsittely versio 6.2.0

Julkishallinnon perustietovarantojen rajapinnat (PERA) -työryhmä. Tietovarantojen yhteinen rajapintaratkaisu. Toimeenpanosuunnitelma

Web-palvelu voidaan ajatella jaettavaksi kahteen erilliseen kokonaisuuteen: itse palvelun toiminnallisuuden toteuttava osa ja osa, joka mahdollistaa k

Suomalaisen julkishallinnon Vetuma-palvelu Vetuma-palvelun SAML-kutsurajapinnan metadata-tiedosto Versio: 3.5

PALVELUKUVAUS OHJELMISTOTALOILLE SAMLINK VARMENNEPALVELU

Tuomiorekisterin ratkaisuhaun kehittäminen

Uuden palvelun lisääminen liityntäpalvelimelle esuomi.fi

Helsingi yliopiston kevytkäyttäjähallintosovelluksen rajapintakuvaus

Tikon Ostolaskujenkäsittely versio SP1

Tikon Ostolaskujenkäsittely/Web-myyntilaskutus versio 6.3.0

Luento 8: XML-tuki ohjelmointikielissä & Web-palvelut

OnniSMS Rajapintakuvaus v1.1

Pilottipalvelun esittely johtopäätökset

T2V2 Turvallisuushavaintoilmoitussanomakuvaus

Uutisjärjestelmä. Vaatimusmäärittely. Web-palvelujen kehittäminen. Versio 1.3

Sosiaalihuollon asiakastiedon arkiston validointipalvelu

WEB SERVICES RAJAPINTA SAMLINKIN TEKNINEN RAJAPINTAKUVAUS OHJELMISTOTALOILLE

Maksuturva-palvelun käyttöönottolomakkeen rajapintakuvaus verkkokauppaohjelmistolle

PerustA - Perustietovarantojen viitearkkitehtuuri. Liite 3: Tietojärjestelmäarkkitehtuurin. integraatioarkkitehtuuri

in condition monitoring

IoT-järjestelmän ja ulkovalaistuksen ohjauksen hankinta -markkinavuoropuhelutilaisuus

Aineistosiirron testauksen aloituksen ohje Trafin sopimuskumppaneille

Palvelun rekisteröinti Virtu - luottamusverkostoon / testipalveluun

Julkisen hallinnon yhteinen kokonaisarkkitehtuuri

Tikon Ostolaskujenkäsittely/Web-myyntilaskutus versio 6.4.0

Aditro Tikon ostolaskujen käsittely versio SP1

Maksuturva-palvelun rajapintakuvaus verkkokaupalle / MAKSUN PERUUTUS

Yhteentoimivuusalusta: Miten saadaan ihmiset ja koneet ymmärtämään toisiaan paremmin?

HOJ J2EE & EJB & SOAP &...

Sovellusarkkitehtuurit

Alkuraportti. LAPPEENRANNAN TEKNILLINEN YLIOPISTO TIETOJENKÄSITTELYN LAITOS Ti Kandidaatintyö ja seminaari

Ohjelmistoarkkitehtuurit

Järjestelmäarkkitehtuuri (TK081702) SOA, Service-oriented architecture SOA,

Attribuutti-kyselypalvelu

Luento 12: XML ja metatieto

HSMT J2EE & EJB & SOAP &...

Kansallinen koodistojen siirtoformaatti

Julkishallinnon tunnistuksen ohjauspalvelun kehityshanke mitä PoC-vaihe on opettanut? Manne Miettinen, Henri Mikkonen ja Arto Tuomi

Viestit-palvelun viranomaisliittymän ohjelmointiohje. Java-esimerkki

Paikkatiedot palveluväylässä kehityksen tilanne Väylän varrelta - Kansallisen palveluväylän kehitystilanne -seminaari

Sähköpostitilin käyttöönotto

XML johdanto, uusimmat standardit ja kehitys

Kela / IT-osasto KanTa-palveluryhmä Sähköisten lääkärintodistusten välitys KanTa-viestinvälitys

Käyttöohje. Ticket Inspector. Versio 1.0. Sportum Oy

Digi-tv vastaanottimella toteutetut interaktiiviset sovellukset

Suomi.fi-palveluväylä. Palvelulupaus ja tiekartta

AJAX-konsepti AJAX. Asynkronisuus. Nykyisten web-ohjelmien ongelmia. Asynchronous JavaScript And XML

Verkkopalvelut ja portaalitryhmän

Finnvalli Web Services. Pieter Starmans

T Testiraportti - järjestelmätestaus

Sisällys. Valtion tietotekniikan rajapintasuosituksia. XML:n rooleja sähköisen asioinnin tavoitearkkitehtuurissa. dbroker - asiointialusta

VTJkysely-palvelu. Sovelluskyselyiden rajapintakuvaus

Suomi.fi-palveluväylä. Palvelulupaus ja tiekartta

Aditro Tikon ostolaskujen käsittely versio SP1

REST-POHJAISEN WEB SERVICEN KEHITTÄMINEN

Käyttäjähallintapalvelun REST-rajapinnat

Digitaalisen median tekniikat xhtml - jatkuu Harri Laine 1

10 Nykyaikainen WWW-arkkitehtuuri

EMCS-järjestelmän sanomarajapinnan toiminnallinen kuvaus asiakkaille Meeri Nieminen

Varmennepalvelu - testipenkki. Kansallisen tulorekisterin perustamishanke

TEKNINEN MÄÄRITTELY. Matkahuollon toimipistehaun rajapinta. Ismo Koskinen

Alkuraportti. LAPPEENRANNAN TEKNILLINEN YLIOPISTO TIETOJENKÄSITTELYN LAITOS CT10A Kandidaatintyö ja seminaari

Euroopan unionin neuvosto Bryssel, 25. heinäkuuta 2014 (OR. en)

X-Road ja WFS-rajapinnat, uudet APIt. Pekka Latvala , KaPA ja paikkatietoinfrastruktuurin kärkiteeman työpaja

Tilaajavastuu.fi. Muutoshistoria. Suomen Tilaajavastuu Oy. Raporttinoutaja Rajapinta yritysten tilaajavastuutietojen tarkistamiseen

XML-saatavuuskysely. XML-tiedoston kuvaus. versio

3 Verkkosaavutettavuuden tekniset perusteet

Perustietovarantojen rajapintaratkaisun sidosryhmät - yhteenveto PERA-määrittely Liite 2

Kansallinen palveluväylä

Transkriptio:

PERA-määrittely Julkisen hallinnon ICT-toiminto 31.5.2011 VM125:06/2007 Julkishallinnon perustietovarantojen rajapinnat (PERA) -työryhmä Tietovarantojen yhteinen rajapintaratkaisu Sovellus-sovellus -integraatioiden tekniset määritykset Versio 0.9 Luonnos Päiväys 31.5.2011

Julkisen hallinnon ICT-toiminto 31.5.2011 2 (11) Sisällysluettelo 1 Yleistä...3 2 Pyyntöjen reititys...3 3 Tunnistus...4 4 Määritysten soveltaminen SOAP-tyyppisissä Web Service -palveluissa...4 4.1 Metatiedot...4 4.2 Virhekäsittely...4 4.3 Tiedostojen siirrot käyttäen SOAP-teknologiaa...5 4.4 Callback-toiminnallisuus SOAP-pohjaisissa ratkaisuissa...6 5 Määritysten soveltaminen RESTful-tyyppisissä Web Service -palveluissa...7 5.1 Rajapintojen mallintaminen RESTful-tyyppisissä Web Service -palveluissa...8 5.2 Metatiedot...9 5.3 Virhekäsittely...9 5.4 Tiedostojen siirrot...10 5.5 Callback -toiminnallisuus RESTful-pohjaisissa ratkaisuissa...10 6 Muutoshistoria...11

Julkisen hallinnon ICT-toiminto 31.5.2011 3 (11) 1 Yleistä 2 Pyyntöjen reititys Tässä liitteessä on kuvattu yksityiskohtaisemmin PERA-määrittelyn tekniset linjaukset, jotka täydentävät yleisiä linjauksia. Sovellus-sovellus -yhteyksissä tulee käyttää Web Service -rajapintoja käyttäen joko SOAP- tai RESTful-tyyppisiä toteutusmalleja. Web service on W3C:n määritelmän mukaan ohjelmistojärjestelmä, joka mahdollistaa keskenään yhteensopivan tietokoneiden välisen vuorovaikutuksen tietoverkon yli. Käytännössä termillä tarkoitetaan World Wide Web -pohjaisia ohjelmointirajapintoja: jokin palvelin tarjoaa muilla tietokoneilla toimiville ohjelmistoille palvelun HTTPn tai muun Internet-pohjaisen protokollan yli. Tässä määrittelyssä otetaan kantaa ainoastaan web service rajapintojen ulkoiseen rajapintaan, ei siihen miten web service ratkaisut toteutetaan. HTTP-protokollan käytön takia yksittäiset pyynnöt ovat aina synkronisia. Palvelua kutsuva järjestelmä voi toteuttaa kutsun asynkronisesti käyttämällä esim. jonkinlaista jonopohjaista ratkaisua, jolloin HTTP-pyynnöt suoritetaan käyttäen jonosta luettavia tietoja. Tällä ratkaisulla saadaan katkaistua esim. päivittävät transaktiot tarpeeksi lyhyiksi. Vastauksen saaminen pyynnölle asynkronisesti on mahdollista käyttäen callback-tyyppistä ratkaisua. Callback-ratkaisussa kutsuttava palvelu määrittelee myös rajapinnan, jota käyttäen vastaus lähetetään kutsujalle. Callback-ratkaisut on kuvattu tarkemmin SOAP- ja RESTful-kohtaisiin osuuksiin. Sovellus-sovellus -integraatioissa pyyntöjen reititys voidaan toteuttaa URI:a käyttäen, koska kaikissa palvelukutsuissa on käytössä HTTP(S)-protokolla. Kompleksisemmat, esimerkiksi sisältöön pohjautuvat reititykset ovat kutsuttavan rajapinnan takaisia toiminnallisuuksia, jolloin ne eivät näy järjestelmien välisissä integraatiossa. Alla kuvaus, kuinka tuotannossa olevan palvelun URI voisi rakentua: https://pr0.integraatiopalvelut.fi/<palvelun tunniste>/<versio>/ Yllä olevassa esimerkissä < > -merkkien välissä olevat muuttujat on kuvattu alla. palvelun tunniste versio kutsuttavan palvelun tunniste kutsuttavan palvelun versio

3 Tunnistus PERA-määrittely VM125:06/2007 Julkisen hallinnon ICT-toiminto 31.5.2011 4 (11) Testauksessa käytettävät palvelut ovat osoitteeltaan muuten samat, mutta URIosoitteen alkuun tulee tunnus, joka kertoo, että kyseessä on testipalvelu. https://test.integraatiopalvelut.fi//<palvelu_tunniste>_<versio>/. Perustasolla järjestelmien väliset kutsut tunnistetaan organisaatiotasolla käyttäen HTTPS:n client-sertifikaattipohjaista tunnistusta. Tunnistuksessa tulee käyttää X.509 version 3. sertifikaatteja. Alla on luettelo varmenteen myöntäjistä, joiden käyttöä suositellaan. Verisign Thawte DigiCert VRK Toinen vaihtoehto tunnistukseen on sanoman allekirjoitus ja/tai salaaminen. Kutsun sisällön allekirjoittamista tai salausta joudutaan käyttämään, mikäli tunnistuksessa ei voida käytää protokollatason (HTTPS) tunnistusta. Sovellus-sovellus -kutsujen salauksessa sisältöosa allekirjoitetaan ja/tai salataan XML-encryption -ratkaisuilla, ja metatiedot jätetään salaamatta. XML-encryption -ratkaisujen huono puoli on suuri resurssien käyttö sekä SSL-tunnistusta heikompi varusohjelmistotuki. 4 Määritysten soveltaminen SOAP-tyyppisissä Web Service -palveluissa 4.1 Metatiedot 4.2 Virhekäsittely SOAP-protokollasta kuvaus : http://en.wikipedia.org/wiki/soap SOAP-tyyppisissä Web Service -toteutuksissa tulee rajapinnat määritellä yhteensopivuuden maksimoimiseksi WS-I määritysten mukaiseksi. SOAP Bindingina käytetään aina Binding Style Document / Literal:ia. SOAP-tyyppiset palvelut tarjotaan joko SOAP versio 1.1:nä tai versio 1.2:na. VIA-palvelu voi tehdä tarvittaessa versiomuunnoksen. SOAP-palveluissa metatiedot kuljetetaan SOAP Headerin sisällä omana XMLdokumenttinaan. Virheviesteissä metatiedot kuljetetaan Fault-rakenteen sisällä. SOAP-palveluissa virheet palautetaan SOAP Fault -sanomina. Sovelluksen toiminnalliset virheilmoitukset palautetaan WSDL-kuvauksiin määriteltävien Faultrakenteiden avulla.

Julkisen hallinnon ICT-toiminto 31.5.2011 5 (11) Esimerkki SOAP-tyyppisestä virhesanomasta <SOAP:Body> <SOAP:Fault> <SOAP:faultcode>SOAP:server</SOAP:FaultCode> <SOAP:faultstring>Internal server Error</SOAP:faultstring> <SOAP:details> <Virhesanoma> <Meta> <kutsuketjutunnus > 6ba7b810-9dad-11d1-80b4-00c04fd430c8 </ kutsuketjutunnus> <alkamisaika> </alkamisaika>. </Meta> <Virhe> <Virhekoodi>601.1</Virhekoodi> <Selite> </Selite> </Virhe> </Virhesanoma> </SOAP:Details> </ SOAP:Fault> </SOAP:Body> 4.3 Tiedostojen siirrot käyttäen SOAP-teknologiaa Ohjelman liiketoimintalogiikan suorituksessa tapahtui hallitsematon virhe Tiedostot tulee liittää sanomiin Base64-koodattuina (encoding). Mikäli palvelun tarjoajan ja kutsujan ohjelmistot mahdollistavat, siirron tehostamiseen käytetään MTOM / XOP (Message Transmission Optimization Mechanism / XML-binary Optimized Packaging) -mekanismia. Vaihtoehtoisesti, mikäli siirrettäviä tiedostoja on paljon tai niiden koko on suuri, voidaan käyttää mekanismia, jossa sanomaan liitetään ladattaviin tiedostoihin viittava URIosoite. Sanoman vastaanottaja suorittaa tällöin tiedostojen latauksen erikseen. Tiedostoja tarjoavan palvelun tulee tulee tukea HTTP byte range -toiminnallisuutta, mikäli rajapinnan kautta tarjottavat tiedostot ovat suuria. HTTP byte range - toiminnallisuuden avulla tiedoston lataamista voidaan jatkaa oikeasta kohdasta, vaikka yhteys jouduttaisiin luomaan kesken latauksen uudelleen.

Julkisen hallinnon ICT-toiminto 31.5.2011 6 (11) 4.4 Callback-toiminnallisuus SOAP-pohjaisissa ratkaisuissa SOAP-palveluissa Callback-toiminnallisuus toteutetaan siten, että alkuperäinen palvelun kutsuja toteuttaa oman SOAP-palvelunsa, jota alkuperäisen palvelun tarjoaja kutsuu, kun vastaus on valmis toimitetttavaksi. Callback-palvelun sijainti ja kutsutiedot ilmoitetaan käyttäen WS Addressing SOAP Headeria. WS Addressing headerissa ilmoitetaan minimissään Callback-palvelun osoite. Lisäksi voidaan ilmoittaa korrelaatioavain, mikäli sellaista tarvitaan. Lähetettäessä sanoma, johon odotetaan vastausta, merkitään SOAP headerin /wsa:replyto/wsa:address -elementtiin haluttu paluukutsun palvelun URI. Paluukutsun SOAP Headerin /wsa:messageid -elementtiin merkitään paluukutsun yksilöivä tunniste. Palvelukutsun /wsa:to -elementtiin asetetaan kutsuttavan palvelun URI ja /wsa:action - elementtiin kutsuttavan palvelun soapaction. Paluusanoman palvelukutsu tehdään varsinaisessa palvelukutsussa kerrottuun URIin. Paluukutsulla on oma /wsa:messageid -elementissä ilmoitettu sanoman yksilöivä tunniste. Alkuperäisen sanoman tunniste liitetään paluukutsun /wsa:relatesto - elementin arvoksi. Palvelukutsun /wsa:to -elementtiin asetetaan kutsuttavan paluukanava-palvelun URI ja /wsa:action -elementtiin kutsuttavan palvelun soapaction. Esimerkki: Palvelukutsu (SOAP 1.2): <S:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:f123="http://www.fabrikam123.example/svc53"> <S:Header> <wsa:messageid>uuid:aaaabbbb-cccc-dddd-eeee-ffffffffffff </wsa:messageid> <wsa:replyto> <wsa:address>http://business456.example/client1</wsa:address> </wsa:replyto> <wsa:to S:mustUnderstand="1">mailto:joe@fabrikam123.example</wsa:To> <wsa:action>http://fabrikam123.example/mail/delete</wsa:action> </S:Header> <S:Body> <f123:delete> <maxcount>42</maxcount> </f123:delete> </S:Body> </S:Envelope> Lähde: http://www.w3.org/submission/ws-addressing/

Julkisen hallinnon ICT-toiminto 31.5.2011 7 (11) Paluukutsu (SOAP 1.2): <S:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:f123="http://www.fabrikam123.example/svc53"> <S:Header> <wsa:messageid> uuid:aaaabbbb-cccc-dddd-eeee-wwwwwwwwwww </wsa:messageid> <wsa:relatesto> uuid:aaaabbbb-cccc-dddd-eeee-ffffffffffff </wsa:relatesto> <wsa:to S:mustUnderstand="1"> http://business456.example/client1 </wsa:to> <wsa:action>http://fabrikam123.example/mail/deleteack</wsa:action> </S:Header> <S:Body> <f123:deleteack/> </S:Body> </S:Envelope> Lähde: http://www.w3.org/submission/ws-addressing/ 5 Määritysten soveltaminen RESTful-tyyppisissä Web Service -palveluissa RESTful-tyyppiset Web Service -palvelut nojautuvat pitkälti URIin, HTTP-protokollan GET, POST, PUT, HEAD, OPTIONS ja DELETE -metodeihin, sekä HTTP:n statuskoodeihin. Lisää RESTful-tyyppisistä web service -palveluista esim. wikipediasta: http://en.wikipedia.org/wiki/representational_state_transfer RESTful-tyyppisissä integraatioissa tulee käyttää HTTP 1.1 -versiota ja hyödyntää sen keep-alive toiminnallisuutta, jotta kutsujen vasteajat saadaan pidettyä pienempinä. RESTful-arkkitehtuuri tarjoaa mahdollisuuden yksinkertaiseen cache-toiminnallisuuteen, mikäli julkaistavien tietojen ajantasaisuusvaatimukset sen mahdollistavat. RESTfultyyppinen palvelu voi asettaa vastauksen otsikkotietoihin tiedon siitä, kuinka kauan tieto on ajantasaista. Tällöin palvelua tarjoava organisaatio tai kutsuva organisaatio saa cache-toiminnallisuuden käyttöönsä, mikäli pyynnöt kuljetetaan HTTP proxy-toteutuksen läpi. Tällä ratkaisulla saadaan yksinkertaisesti skaalautuvuutta tietoa tarjoaviin palveluihin ja vähennettyä organisaatioiden välisiä kutsuja. Ratkaisu mahdollistaa myös informaation tarjoajan kontrolloida tietojen ajantasaisuutta cachen säilytysaikamäärityksillä.

Julkisen hallinnon ICT-toiminto 31.5.2011 8 (11) 5.1 Rajapintojen mallintaminen RESTful-tyyppisissä Web Service -palveluissa RESTful tyyppiset palvelut mallinnetaan usein Resource Oriented Architecture (ROA) - tyyppisesti, jolloin palvelut ja niiden kutsumiseen tarkoitetut URI:t rakentuvat määriteltyjen resurssien ympärille. Alla on yksinkertainen kuviteellinen esimerkki siitä kuika URI:a voidaan käyttää RESTarkkitehtuurissa. http://esimerkki.fi/sopimus/4221213/kommentit/ Yllä oleva esimerkkikutsu palauttaisi yksittäiseen sopimukseen (tunnisteella 4221213) liittyvät kommentit jos URIa kutsutaan GET-metodilla. Toisaalta POST metodilla kutsuttaessa kyseiselle kuvitteelliseen sopimukseen voidaan liittää uusi kommentti. ROA on hyvä palveluiden mallinnustapa varsinkin rekisteritietojen julkaisuun. Tietoja päivittävissä ratkaisuissa palvelun rajapinnat joudutaan usein mallintamaan prosessien kautta. Näissä tapauksissa RESTful-arkkitehtuurin hyviä käytäntöjä voidaan hieman soveltaa luoden palveluita, jotka tarjoavat palveluita RPC (Remote procedure call) - tyyppisen rajapinnan kautta käyttäen kuitenkin muita RESTful-arkkitehtuurin käytäntöjä. Tällaisissa palveluissa URI viittaa toiminnalliseen palveluun eikä yksittäiseen resurssiin. RESTful-tyyppisten palveluiden kuvaukseen ei ole yhtä standardoitua tapaa kuten SOAP-tyyppisillä palveluilla. Tämän takia alle on listattu muutamia tapoja kuvata RESTful-palveluita. Dokumentin kirjoitushetkellä julkisista RESTful-palveluista on suurin osa kuvattu palvelun tarjoajan toimesta, ilman erillisiä kuvaustiedostoja. WADL Web Application Description Language WADL tarjoaa mahdollisuuden REST-tyyppisten web service palveluiden kuvaukselle. http://en.wikipedia.org/wiki/web_application_description _Language WSDL 2.0 Palvelun tarjoajan oma dokumentaatio HTTP binding tarjoaa mahdollisuuden kuvata RESTful pohjaisia palveluita WSDL:n avulla. Dokumentin kirjoitushetkellä WSDL 2.0 ei ole vielä saavuttanut merkittävää suosiota. Usein palvelun tarjoaja on kuvannut RESTful-tyyppiset palvelut omassa dokumentaatiossaan parhaaksi katsomallaan tavalla. Nämä kuvaukset ovat harvoin koneluettavissa.

5.2 Metatiedot 5.3 Virhekäsittely PERA-määrittely VM125:06/2007 Julkisen hallinnon ICT-toiminto 31.5.2011 9 (11) Kutsujen kaikki metatiedot toimitetaan RESTful-pohjaisissa kutsuissa avain-arvopareina kutsuissa ja vastauksissa HTTP-protokollan otsikkotiedoissa. Yksittäisen metatiedon avaimet on määritelty sovellus-sovellus -metatietohin HTTP-header nimi -arvona (katso yleinen rajapintaratkaisu kappale 4.1) RESTful-pohjaisissa rajapinnoissa virhetilanteet raportoidaan tämän määrityksen mukaisilla XML-pohjaisilla virhesanomilla (katso yleinen rajapintaratkaisu kappale 4.1). Arkkitehtuurimallin mukaisesti HTTP:n paluukoodin tulee vastata virheen tyyppiä Alla olevassa listassa on kuvattu virhesanomien koodit ja kyseisen virhetilanteen yhteydessä käytettävät HTTP:n paluukoodit. virhekoodi HTTP paluukoodi Selite 400.1 400 Kutsuviestin kehystiedot ovat sisällöltään tai muodoltaan virheellisiä 400.2 400 Kutsuviesti on muodoltaan virheellinen 400.3 400 Kutsuviesti on sisällöltään virheellinen 403.1 403 Toiminto ei ole sallittu kyseiselle organisaatiolle 401.1 401 / 504 Timeout, toiminto ei ole onnistunut asetetussa määräajassa. 500 Tyypittämätön palvelintason virhe 502.1 502 Bad Gateway: Ongelmia gateway ja backend palvelun välillä. Yhteys saadan mutta kutsua ei saada suoritettua onnistuneesti. 503.1 503 Service Unavailable: Palvelu ei ole käytettävissä. Retry-After otsikkotiedossa voidaan kertoa milloin palvelua kutsuvan kannattaa uudelleen yrittää suorittaa

Julkisen hallinnon ICT-toiminto 31.5.2011 10 (11) kutsua. 504.1 504 Sanomapohjainen reititys ei onnistu (sääntöjä ei ole määritelty) >1000 500 Virhe liiketoimintalogiikan käsittelyssä Sovelluskohtaiset virhekoodit. Sovelluskohtaiset virhekoodit käyttävät koodiavaruutta 1000:sta ylöspäin 5.4 Tiedostojen siirrot Tiedostojen lataus RESTful-pohjaisissa palveluissa voidaan toteuttaa URI-määrityksiä käyttäen. Ratkaisussa kysely- tai päivitysoperaatio palauttaa kutsuvalle palvelulle viestin, joka sisältää URIn ladattavaan tiedostoon. URI:n avulla kutsuva palvelu voi ladata tiedoston suoraan palvelua tarjoavalta organisaatiolta. Tällaisessa ratkaisussa tiedostoja tarjoavan palvelun ja asiakassovelluksen tulee tukea HTTP byte range - toiminnallisuutta, mikäli rajapinnan kautta tarjottavat tiedostot ovat suuria. HTTP byte range toiminnallisuuden avulla tiedoston lataamista voidaan jatkaa oikeasta kohdasta vaikka HTTP-yhteys jouduttaisiin luomaan kesken latauksen uudelleen. HTTP -pohjaisessa tiedostojen latauksessa palvelun tarjoajan tulee määritellä HTTPprotokollan otsikkotietojen MIME-tyyppi vastaamaan ladattavan tiedoston tyyppiä. Päivityksien yhteydessä tiedostot voidaan ladata ensin kohdepalveluun ja vasta tämän jälkeen kutsuva palvelu lähettää päivityksen suorittavan sanoman. Näissä tapauksissa erikseen ladatut tiedostot ja sanoma voidaan liittää yhteen metadatassa kuljetettavan kutsuketjun tunnisteella. Tiedostot tulee liittää sanomiin Base64-koodattuina, mikäli tiedosto(t) joudutaan toimittamaan yhtä aikaa muun informaation kanssa. 5.5 Callback -toiminnallisuus RESTful-pohjaisissa ratkaisuissa RESTful-pohjaisissa ratkaisuissa callback-toiminnallisuus toteutetaan HTTPotsikkotiedoissa välitettävällä kutsuvan palvelun URI-osoitteella. Tällöin kutsuttu palvelu kirjoittaa vastauksen saatuun URI-osoitteeseen. Vastaussanoman muodon määrittelee kutsuttava palvelu. RESTful-pohjaisen callback-toiminnallisuuden tarkennus toteutetaan samalla kun RESTful-tyyppiset rajapinnat ohjeistetaan.

Julkisen hallinnon ICT-toiminto 31.5.2011 11 (11) 6 Muutoshistoria Versio Päiväys Tekijä Tarkastaja Hyväksyjä Muutoshistoria 0.9 31.5.2011 Jukka Matilainen, Jussi Lattu 0.2 24.11.2010 Jukka Matilainen, Jussi Lattu Jukka Uusitalo Jukka Uusitalo Luonnosversio palautekierrosta varten Luonnosversio julkaistavaksi työryhmän välituloksissa 2010