-
Notifications
You must be signed in to change notification settings - Fork 0
Ulkoinen energiatodistusrajapinta
Dokumentaatio on muuttanut. Ajantasainen dokumentaatio löytyy osoitteesta https://github.com/solita/ara-etp/wiki.
Energiatodistusrekisterissä on laskentaohjelmistoja varten ulkoinen rajapinta, josta voi lähettää uuden energiatodistuksen (luonnos) järjestelmään.
Rajapinnan testaus ja kokeilu pitää ensisijaisesti tehdä testiympäristössä: https://private.testi.energiatodistusrekisteri.fi/. Laskentaohjelmiston valmistaja voi pyytää ARA:lta (sähköposti: [email protected]) yleisen testitunnuksen testiympäristöön.
Rajapinta on versiokohtainen ja löytyy poluista:
- /api/external/energiatodistukset/2013
- /api/external/energiatodistukset/2018
Rajapinta on käytettävissä ympäristöissä:
- Testi: https://private.testi.energiatodistusrekisteri.fi (kehitys ja testaus)
- Tuotanto: https://private.energiatodistusrekisteri.fi (vain tuotantokäyttö)
Energiatodistus lähetetään palveluun https/post-pyyntönä, jossa energiatodistuksen tiedot on json-muodossa (utf-8):
POST /api/external/energiatodistukset/2018 HTTP/1.1
Authorization: Basic bGFhdGlqYUBzb2xpdGEuZmk6YXNkZmFzZGY=
Content-Type: application/json
{ ... }
Käyttäjätunnistus perustuu http/basic-menetelmään. Käyttäjätunnus on laatijan sähköpostiosoite ja salasana laatijan määrittämä tiedonsiirron salasana. Nämä tiedot löytyvät laatijan omista tiedoista.
Jokaisella energiatodistusversiolla on oma json-muotoinen tietosisältö, jonka skeemat löytyvät:
Skeema on kehitetty pelkästään tämän rajapinnan dokumentointiin. Skeema määrittää suoraan energiatodistuksen json-muotoisen aineiston rakenteen: jos attribuutin arvo on objekti tai vektori niin se on skeemassa objekti tai vektori. Jos taas arvo on perustietotyyppi niin se on määritetty muodossa:
"Tyyppi [Tarkenne] [?]"
esim. "String [1, 6300]?"
Tyyppi määrittää json-perustietotyypin:
- Integer: kokonaisluku esim.
1
- Number: desimaaliluku esim.
1.1
- String: merkkijono esim.
"test"
- Boolean: true/false esim.
true
Tarkenteella rajoitetaan edelleen mahdollista sisältöä
- String [min, max] - Merkkijono, jonka pituus on välillä min, max
- Number [min, max] - Desimaaliluku, jonka arvo on välillä min, max (max = 9999999999)
⚠️ Skeemassa olevien staattisten raja-arvojen lisäksi numeroarvoon voi liittyä dynaamiset virhe- ja varoitusraja-arvot
- Integer EntityId - Numeromuotoinen viite johonkin toiseen käsitteeseen esim.
Integer YritysId
- String LocalDate - ISO 8601 päivämäärä - YYYY-MM-DD
- Int Year - vuosiluku 0 - 9999
- String Rakennustunnus - rakennustunnus ks. funktio: valid-rakennustunnus?
Lopussa oleva kysymysmerkki tarkoittaa että arvo voi olla tyhjä (null) tai attribuutin voi jättää kokonaan pois. Jos lopussa ei ole kysymysmerkkiä, niin arvo on pakollinen.
Energiatodistuksen tiedoissa on viitteitä luokittelutietoon. Viitteenä käytetään numeromuotoista tunnistetta. Tiedon tyyppi on muotoa: Integer *Id
. Näiden luokittelujen kuvaukset ja tunnisteiden merkitys on saatavilla julkisesta rajapinnasta:
- KieliId - https://energiatodistusrekisteri.fi/api/public/energiatodistukset/kielisyys
- LaatimisvaiheId - https://energiatodistusrekisteri.fi/api/public/energiatodistukset/laatimisvaiheet
- IlmanvaihtotyyppiId - https://energiatodistusrekisteri.fi/api/public/energiatodistukset/ilmanvaihtotyyppi
- LammitusmuotoId - https://energiatodistusrekisteri.fi/api/public/energiatodistukset/lammitysmuoto
- LammonjakoId - https://energiatodistusrekisteri.fi/api/public/energiatodistukset/lammonjako
Käyttötarkoituksen kuvaamiseen on kaksitasoinen versiokohtainen luokittelu:
- Käyttötarkoitusluokat:
- https://energiatodistusrekisteri.fi/api/public/energiatodistukset/kayttotarkoitusluokat/2018
- https://energiatodistusrekisteri.fi/api/public/energiatodistukset/kayttotarkoitusluokat/2013
- Alakäyttötarkoitusluokat:
- https://energiatodistusrekisteri.fi/api/public/energiatodistukset/alakayttotarkoitusluokat/2018
- https://energiatodistusrekisteri.fi/api/public/energiatodistukset/alakayttotarkoitusluokat/2013
Energiatodistuksen käyttötarkoitus kuvataan määrittämällä mihin alakäyttötarkoitukseen energiatodistus kuuluu:
{ perustiedot: { kayttotarkoitus: String AlakayttotarkoitusluokkaId }}
Energiatodistuksen tiedoissa on viitteitä muuhun rekisterissä olevaan tietoon:
-
Integer YritysId
- laskutettavan yrityksen tunnus -
Integer LaskutusosoiteId
- laskutusosoitteen tunnus, joka on joko laskutettavan yrityksen tunnus tai -1 joka tarkoittaa henkilökohtaista laskutusta. -
Integer EnergiatodistusId
- korvattavan energiatodistuksen tunnus -
String Postinumero
- postinumero merkkijono (5-merkkiä sisältää etunollat), joka viittaa järjestelmässä oleviin postinumeroihin
Jos energiatodistuksen luonti onnistuu niin järjestelmä vastaa:
HTTP/1.1 201 Created
Location: /api/external/energiatodistukset/2018/id
{"id":id,"warnings":[]}
jossa id on uuden energiatodistus-luonnoksen tunnus. Onnistunut luonti voi sisältää varoituksia jos joidenkin lukuarvojen varoituksen raja-arvot on ylittynyt. Esimerkki vastauksesta jossa on varoitus:
{"id":11,"warnings":[{"property":"lahtotiedot.ilmanvaihto.paaiv.sfp","value":5,"min":0,"max":2.5}]}
Varoituksia voi olla listassa n kpl.
Varoituksen tiedot:
- property: polku ko. tietoon energiatodistusaineistossa
- value: annettu virheellinen arvo
- min, max: sallitut arvot on välillä min - max
Virhetilanteessa 4xx tai 5xx energiatodistusta ei tallenneta. Vastauksen status 4xx tarkoittaa että pyynnön sisällössä on jotakin väärin. Status 5xx tarkoittaa taas jotakin odottamatonta virhetilannetta itse palvelussa.
HTTP/1.1 401 Unauthorized
Tämä tarkoittaa että käyttäjätunnus/salasana on väärin tai http/basic-tiedoissa on jotakin muuta vikaa.
Energiatodistuksen tiedosta tarkistetaan ensin vastaako tiedot skeemaa ja tämän jälkeen tarkistetaan muut mahdolliset virheet. Virhevastaus on muotoa:
HTTP/1.1 400 Bad Request
{ "type": "NNN", "message": "XXX"}
Virheen muut tiedot riippuvat virheen tyypistä. Virheen message-kenttä on tarkoitettu sovelluskehittäjillä vian selvittämiseen.
Virhetyypit ja virheiden tietosisältö:
Tyyppi | Kuvaus | Sisältö |
---|---|---|
reitit.coercion/request-coercion | Tiedon rakenne tai sisältö ei vastaa skeemaa. On suositeltavaa toteuttaa laskentaohjelmisto niin että laatija ei voi syöttää tietoa joka ei ole skeeman mukaista. | errors: kuvaus virheestä, value: lähetetyt tiedot, schema: tiedon skeema, joka on määritetty sisäisessä koneluettavassa muodossa |
invalid-value | Jonkun attribuutin numeroarvo rikkoo dynaamista virheraja-arvoa. Mille tahansa numeroarvolle on järjestelmässä mahdollista dynaamisesti määrittää virhe- ja varoitusraja-arvot, jotka ovat tarkemmat kuin skeemassa määritetyt yleiset raja-arvot. | Tämä virhe sisältää samat tiedot kuin varoitus. Näiden tietojen perusteella laskentaohjelmisto voi näyttää virheilmoituksen niin että se kohdistuu virheelliseen tietoon. |
invalid-sisainen-kuorma | Sisäisessä kuormassa on virheellisiä arvoja, joita ei voi käyttää valitulle käyttötarkoitusluokalle. | valid-kuorma: sallitut arvot sisäiseen kuormaan |
invalid-laskutusosoite | Laskutusosoitetta ei ole olemassa tai se ei ole enää laatijan käytettävissä | |
invalid-replace | Korvattu energiatodistus tieto on virheellinen | TODO: tarkemmat tiedot, jotta laskentaohjelmisto voisi näyttää virheen paremmin käyttäjälle. |
foreign-key-violation | Jotakin tunnistetta vastaavaa tietoa ei ole olemassa | TODO: tarkemmat tiedot, jotta laskentaohjelmisto voisi näyttää virheen paremmin käyttäjälle. |