Klimarapportering(alpha)

Generell informasjon

Endepunktet for innrapportering av klimarapport forventer at dataene blir innsendt som JSON. Klimarapport er et versjonert endepunkt og det er viktig at man setter header Ver til 1.0 som vist i eksemplene.

NB! Dette er en alpha versjon, det kan komme fortløpende endringer, ta kontakt før det taes i bruk.

KontraktId

Kontrakt id hentes ut under kontrakt info ved å logge inn med en entreprenør eller superbruker i ELRAPP.

Metadata

Metadata endepunktet gir metadata for miljøklasse, enhet type, energikilde, målekilde og utkjørt lengde kilde. Metadatene må bli brukt ved innsending av en klimarapport. Metadataene består av feltene id og verdi, hvor id er ett heltall og verdi en string. Metadata for energikilder har et ekstra felt og det er enheten til energikilden. Det er tilfeller der flere energikilder har samme navn/verdi men hvor enhet er forskjellig. Ved innsending så er det id som blir brukt.

Eksempel

GET /klimarapportering/metadata HTTP/1.1
Content-Type: application/json
Authorization: ApiKey 1b9a1439-25ef-436e-8558-49ae982f9689
Ver: 1.0
{
    "klimarapportMiljoklasseDtos": [],
    "klimarapportEnhetTypeDtos": [],
    "klimarapportEnergiKildeDtos": [        
        {
            "id": 206, //heltall, unik ID fra ELRAPP som bli brukt ved innsending
            "verdi": "Hydrogen", //string 
            "enhet": "kg" //string
        },
    ],
    "klimarapportMalekildeDtos": [],
    "klimarapportUtkjortLengdeKildeDtos": [        
        {
            "id": 213, //heltall, unik ID fra ELRAPP som bli brukt ved innsending
            "verdi": "Avlest" //string
        }
    ]
}

Innsending

Endepunktet tar imot en liste og listen må minimum inneholde ett innslag.

Validering og avhengigheter

Det som blir innsendt blir validert, hvis innsendt datasett ikke er gyldig så returnerer vi BadRequest med en feilmelding. Obligtoriske felter er kontraktId, enhetType, miljoklasse, energikilde, mengde, maleKilde, fra og til. Det er noen andre felter som kan være obligatorisk og de beskrives under.

Det er noen felter som har avhengigheter til andre felter. Det vil si at hvis et felt har verdi så må dette andre feltet også ha verdi, eller at hvis et felt har verdi så kan ikke disse andre feltene ha verdi. utkjortLengde og utkjortLengdeKilde har en slik avhengighet der hvis et av feltene har verdi så må det andre feltet også ha en verdi. motorTidSekunder, utkjortLengde og utkjortLengdeKilde har en slik avhengighet hvis motorTidSekunder har verdi så kan ikke de to andre ha verdi og det samme gjelder motsatt. enhetId, kjoretoyregistreringsnummer og maskinRegisternummer har en slik avhengighet at hvis et av feltene har verdi så kan ikke de to andre ha verdi.

Hybride energikilder

Hvis en enhet er hybrid, altså enhet bruker mer enn en energikilde så må dette registreres en gang pr. energikilde. F.eks hvis en man skal rapportere for en hybrid bil med diesel og elektrisitet så blir det ett innslag for diesel og et innslag eleketrisitet.

Overlapp

Vi tillater ikke overlapp i det som sendes inn. Med overlapp så mener vi at en enhet med en type energikilde i en periode skal være unik. Når enhet nevnes så menes det enhetId, kjoretoyregistreringsnummer eller maskinRegisternummer. Vi sjekker overlapp i det som sendes inn samt opp mot allerede innsendte data. Hvis det blir sendt inn overlapp så returnerer vi BadRequest med en feilmelding. f.eks så sendes det inn med enhetId = EC343SDpgfj, energiKilde = diesel og periode = 2023-01-01 08:00:00-09:00:00 og det allerede er sendt inn for enhetId = EC343SDpgfj, energiKilde = diesel og periode = 2023-01-01 07:30:00-08:30:00 så vil dette bli sett på som overlapp og innsendingen vil feile.

Eksempel

POST /klimarapportering/{kontraktId} HTTP/1.1
Content-Type: application/json
Authorization: ApiKey 1b9a1439-25ef-436e-8558-49ae982f9689
Ver: 1.0
[
    {
        "id": 0, //heltall, unik id i elrapp, den settes av ELRAPP ved innsending, sett verdi til 0
        "kontraktId": 5377, //heltall, Kontraktens unike id i ELRAPP
        "enhetId": "0ffvdvjn2048ru", //string, Enhetens entreprenør- og kontraktsunike nummer(alfanumerisk, maks. 30 tegn) om kjøretøyregistreringsnummer eller nummer i maskinregisteret ikke finnes
        "enhetType": 189, //heltall, sier noe om type enhet, verdi hentes fra metadata
        "arsmodell": 2023, //heltall, årsmodell for enheten
        "miljoklasse": 177, //heltall, sier hvilken miljøklasse enheten har, verdi hentes fra metadata
        "modellbetegnelse": "Test, modellbetegnelse", //string, fritekst, ikke nødvendig å gjenta info som finnes i f.eks. kjøretøyregisteret
        "energikilde": 198, //heltall, hvilken energikilde enheten bruker, verdi hentes fra metadata
        "mengde": 2.0, //double, mengden drivstoff/energi brukt av enhet
        "maleKilde": 213, //heltall, målekilde for rapportert forbrukt mengde, verdi hentes fra metadata
        "utkjortLengde": 3.0, //double, hvor langt en enhet har kjørt, kan også bruke motorTidSekunder hvis lengde ikke er relevant,maks 8 desimaler
        "utkjortLengdeKilde": 215, //heltall, Kilde for rapportert utkjørt lengde, verdi hentes fra metadata
        "fra": "2023-01-22T08:02:00", //Fra dato og klokkeslett
        "til": "2023-01-22T08:03:00" // til dato og klokkeslett
    },
    {
        "id": 0, //heltall, unik id i elrapp, den settes av ELRAPP ved innsending, sett verdi til 0
        "kontraktId": 5377, //heltall, Kontraktens unike id i ELRAPP
        "maskinRegisternummer": "ererj49df", //string, nummer i maskinregisteret (reginn.no)
        "enhetType": 189, //heltall, sier noe om type enhet, verdi hentes fra metadata
        "arsmodell": 2023, //heltall, årsmodell for enheten
        "miljoklasse": 177, //heltall, sier hvilken miljøklasse enheten har, verdi hentes fra metadata
        "energikilde": 198, //heltall, hvilken energikilde enheten bruker, verdi hentes fra metadata
        "mengde": 2.0, //double, mengden drivstoff/energi brukt av enhet
        "maleKilde": 213, //heltall, målekilde for rapportert forbrukt mengde, verdi hentes fra metadata
        "motorTidSekunder": 33234, //heltall, hvor lenge en enhet har blitt brukt, oppgis i sekunder
        "fra": "2023-01-22T08:02:00", //Fra dato og klokkeslett
        "til": "2023-01-22T08:03:00" // til dato og klokkeslett
    },
    {
        "id": 0, //heltall, unik id i elrapp, den settes av ELRAPP ved innsending, sett verdi til 0
        "kontraktId": 5377, //heltall, Kontraktens unike id i ELRAPP
        "kjoretoyregistreringsnummer": "EE12345", //string, kjøretøyregistreringsnummer 
        "enhetType": 189, //heltall, sier noe om type enhet, verdi hentes fra metadata
        "miljoklasse": 177, //heltall, sier hvilken miljøklasse enheten har, verdi hentes fra metadata
        "energikilde": 198, //heltall, hvilken energikilde enheten bruker, verdi hentes fra metadata
        "mengde": 2.0, //double, mengden drivstoff/energi brukt av enhet
        "maleKilde": 213, //heltall, målekilde for rapportert forbrukt mengde, verdi hentes fra metadata
        "motorTidSekunder": 33234, //heltall, hvor lenge en enhet har blitt brukt, oppgis i sekunder
        "fra": "2023-01-22T08:02:00", //Fra dato og klokkeslett
        "til": "2023-01-22T08:03:00" // til dato og klokkeslett
    },
    ...
]

Uthenting

Det eksisterer et endeunkt for uthenting. Endepunktet gjør de mulig å hente pr. kontrakt pluss det er parametre for å begrense uthentingen til en periode eller spesifikk enhet.

parametre: fra, til, enhetId, kjoretoyregisternummer og maskinRegisternummer. Ingen av parameterne er obligatorisk og det er ingen avhengighet mellom parameterne heller. Hvis du ikke sender med noen parametere så vil endepunktet returnere alle elementene for den kontrakten

Eksempel

GET /klimarapportering/{kontraktId} HTTP/1.1
Content-Type: application/json
Authorization: ApiKey 1b9a1439-25ef-436e-8558-49ae982f9689
Ver: 1.0

Hent alle innrapporteringene for kontrakt med id = 4255

GET /klimarapportering/4255 HTTP/1.1
Content-Type: application/json
Authorization: ApiKey 1b9a1439-25ef-436e-8558-49ae982f9689
Ver: 1.0

Hent alle innrapporteringene for kontrakt med id = 4255 og enhetId = 'TestEnhet1'

GET /klimarapportering/4255?enhetId=TestEnhet1 HTTP/1.1
Content-Type: application/json
Authorization: ApiKey 1b9a1439-25ef-436e-8558-49ae982f9689
Ver: 1.0

Hent alle innrapporteringene for kontrakt med id = 4255 og der elementene enten har enhetID = 'TestEnhet1' eller kjoretoyregisternummer = 'EC12345'

GET /klimarapportering/4255?enhetId=TestEnhet1&kjoretoyregisternummer=EC12345 HTTP/1.1
Content-Type: application/json
Authorization: ApiKey 1b9a1439-25ef-436e-8558-49ae982f9689
Ver: 1.0

Eksempel på uthentet data:

[
    {
        "id": 13,
        "kontraktId": 4255,
        "kjoretoyregistreringsnummer": "EC12345",
        "maskinRegisternummer": null,
        "enhetId": null,
        "arsmodell": 2021,
        "miljoklasse": 177,
        "enhetType": 189,
        "modellbetegnelse": null,
        "energikilde": 198,
        "mengde": 2,
        "maleKilde": 213,
        "utkjortLengde": null,
        "utkjortLengdeKilde": null,
        "motorTidSekunder": 33234,
        "fra": "2023-01-22T08:02:00",
        "til": "2023-01-22T08:03:00"
    }
]
Last Updated:
Contributors: adriankreutz