DigEks-tjenester

DigEks (Digital eksamen) er tjenester for digital eksamen. Modellen og begreper er beskrevet her. Obs! Dokumentet er delvis utdatert, men beholdes for historikken. Se oppdatert dokumentasjon under.

Tanken er at utvekslingen med digital eksamen skal gå via Uninett sin integrasjonsplattform. Les mer om dette her. Man kan benytte seg av tjeneste direkte, men da må de benyttes slik de er. Alle tilpasninger skal gå gjennom Uninett.

Eksempler

Alle Java-eksempler benytter seg av Apache HTTP Client

Alle eksempler går mot vår kursbase så eventuelle data man ser her er fiktive.

Tilgjengelige grensesnitt

Hente ut versjonsnummer til eksamenstjenesten

Denne tjenesten henter ut versjonsnummeret til tjenesten. Dette er en GET-tjeneste som ikke tar noen parametre.

Denne tjenesten returnerer et JSON-objekt.

URL for test: https://fs-test.uio.no/eksamen/versjon
URL for prod: https://fsws.usit.no/eksamen/versjon

Java-eksempel

import org.apache.http.HttpHost;
import org.apache.http.HttpResponse;
import org.apache.http.auth.AuthScope;
import org.apache.http.auth.UsernamePasswordCredentials;
import org.apache.http.client.AuthCache;
import org.apache.http.client.CredentialsProvider;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.protocol.HttpClientContext;
import org.apache.http.impl.auth.BasicScheme;
import org.apache.http.impl.client.BasicAuthCache;
import org.apache.http.impl.client.BasicCredentialsProvider;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;

public class GetVersjon {

    private static String theUrl = "https://fs-test.uio.no/eksamen/versjon";


    public static void main(String[] args) throws Exception {
        HttpHost target = new HttpHost("fs-test.uio.no", 443, "https");
        CredentialsProvider credsProvider = new BasicCredentialsProvider();
        credsProvider.setCredentials(
            new AuthScope(target.getHostName(), target.getPort()),
            new UsernamePasswordCredentials("brukernavn", "passord"));
        CloseableHttpClient client = HttpClients.custom()
            .setDefaultCredentialsProvider(credsProvider).build();

        AuthCache authCache = new BasicAuthCache();
        BasicScheme basicAuth = new BasicScheme();
        authCache.put(target, basicAuth);

        HttpClientContext localContext = HttpClientContext.create();
        localContext.setAuthCache(authCache);

        HttpGet get = new HttpGet(theUrl);

        HttpResponse response = client.execute(get);
        response.getEntity().writeTo(System.out);
    }
}

Eksempel på svar

{
  "versjonsnummer": "4.6.3",
  "wstjeneste": "fsws-eksamen"
}

Hente autogenererte json schema

Alle tjenestene har nå et (ikke påkrevd) parameter schema som kan være enten true eller false. Dersom true så vil et json-schema leveres istedenfor opprinnelig resultat.

For GET-tjenester leveres json schema til det kommer fra FS.

For POST-tjenester leveres json schema til det som skal inn til FS.

I tillegg finnes en tjeneste "schema" som tar inn ett tekststrengparameter schema=klasse

Denne tjenesten returnerer et JSON-objekt.

For oppdatert liste over implementerte schemaklasser, bruk en ukjent klassetype i query ?schema=NOE

URL for test: https://fs-test.uio.no/eksamen/schema?schema=<klasse>
URL for prod:Finnes foreløpig kun i test.

Java-eksempel

import org.apache.http.HttpHost;
import org.apache.http.HttpResponse;
import org.apache.http.auth.AuthScope;
import org.apache.http.auth.UsernamePasswordCredentials;
import org.apache.http.client.AuthCache;
import org.apache.http.client.CredentialsProvider;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.protocol.HttpClientContext;
import org.apache.http.impl.auth.BasicScheme;
import org.apache.http.impl.client.BasicAuthCache;
import org.apache.http.impl.client.BasicCredentialsProvider;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;

public class GetVersjon {

    private static String theUrl = "https://fs-test.uio.no/eksamen/schema?schema=KLAGER";


    public static void main(String[] args) throws Exception {
        HttpHost target = new HttpHost("fs-test.uio.no", 443, "https");
        CredentialsProvider credsProvider = new BasicCredentialsProvider();
        credsProvider.setCredentials(
            new AuthScope(target.getHostName(), target.getPort()),
            new UsernamePasswordCredentials("brukernavn", "passord"));
        CloseableHttpClient client = HttpClients.custom()
            .setDefaultCredentialsProvider(credsProvider).build();

        AuthCache authCache = new BasicAuthCache();
        BasicScheme basicAuth = new BasicScheme();
        authCache.put(target, basicAuth);

        HttpClientContext localContext = HttpClientContext.create();
        localContext.setAuthCache(authCache);

        HttpGet get = new HttpGet(theUrl);

        HttpResponse response = client.execute(get);
        response.getEntity().writeTo(System.out);
    }
}

Eksempel på svar

{
  "type": "object",
  "id": "urn:jsonschema:no:ceres:eksamen:model:Vurderingsenhet",
  "properties": {
    "campuskode": {
      "type": "string"
    },
    "datoSistEndret": {
      "type": "string"
    },
    "datoUttak": {
      "type": "string"
    },
    "domene": {
      "type": "string"
    },
    "eksamenssystem": {
      "type": "string"
    },
    "emnekode": {
      "type": "string"
    },
    "emnetittel": {
      "type": "string"
    },
    "fristKunngjoring": {
      "type": "string"
    },
    "id": {
      "type": "string"
    },
    "institusjonsnr": {
      "type": "integer"
    },
    "klagefrist": {
      "type": "string"
    },
    "klager": {
      "type": "array",
      "items": {
        "type": "object",
        "id": "urn:jsonschema:no:ceres:eksamen:model:KlageGet",
        "properties": {
          "brukernavn": {
            "type": "string"
          },
          "etternavn": {
            "type": "string"
          },
          "fornavn": {
            "type": "string"
          },
          "kandidatnr": {
            "type": "integer"
          },
          "klagestatus": {
            "type": "string"
          },
          "kommisjonsidNy": {
            "type": "string"
          },
          "kommisjonsidOppr": {
            "type": "string"
          },
          "personlopenr": {
            "type": "string"
          },
          "sensurfrist": {
            "type": "string"
          }
        }
      }
    },
    "kunkandidatnr": {
      "type": "boolean"
    },
    "poeng": {
      "type": "string"
    },
    "sensurfrist": {
      "type": "string"
    },
    "sensursystem": {
      "type": "string"
    },
    "sistEndret": {
      "type": "integer",
      "format": "utc-millisec"
    },
    "slutt": {
      "type": "string"
    },
    "start": {
      "type": "string"
    },
    "stedkode": {
      "type": "string"
    },
    "tid": {
      "type": "object",
      "id": "urn:jsonschema:no:ceres:eksamen:model:Tid",
      "properties": {
        "reell": {
          "type": "string"
        },
        "start": {
          "type": "string"
        }
      }
    },
    "tidStart": {
      "type": "integer"
    },
    "varighetTimer": {
      "type": "number"
    },
    "vekttype": {
      "type": "string"
    },
    "versjonskode": {
      "type": "string"
    },
    "vurderingsform": {
      "type": "string"
    },
    "vurderingsordning": {
      "type": "string"
    },
    "vurdkombkode": {
      "type": "string"
    },
    "vurdkombtittel": {
      "type": "string"
    },
    "vurdstatuskode": {
      "type": "string"
    }
  }
}

Hente ut informasjon om eksamen i emne

Denne tjenesten henter ut informasjon om eksamen for et gitt emne i et gitt semester. Dette er en GET-tjeneste som tar følgende query-parametre:

  • institusjonsnr: Nummeret for institusjonen som du skal hente fra
  • emnekode: Emnekoden for eksamen
  • versjonskode: Versjonskoden for emnet. Alle versjoner av emnet vises dersom versjonskode ikke er angitt.
  • arstall: Årstall for eksamen
  • terminkode: Terminkoden
  • malform: Målformen for informasjonen, enten "BM" (bokmål), "NN" (nynorsk) eller "EN" (engelsk). Bokmål vises dersom ikke målformen er angitt.
  • schema=true: Viser autogenerert json schema for retur

Denne tjenesten returnerer et JSON-objekt.

URL for test: https://fs-test.uio.no/eksamen/eksamensinfo?institusjonsnr=<nr>&emnekode=<kode>&versjonskode=<nr>&arstall=<år>&terminkode=<kode>&malform=<form>
URL for prod: https://fsws.usit.no/eksamen/eksamensinfo?institusjonsnr=<nr>&emnekode=<kode>&versjonskode=<nr>&arstall=<år>&terminkode=<kode>&malform=<form>

Java-eksempel

import org.apache.http.HttpHost;
import org.apache.http.HttpResponse;
import org.apache.http.auth.AuthScope;
import org.apache.http.auth.UsernamePasswordCredentials;
import org.apache.http.client.AuthCache;
import org.apache.http.client.CredentialsProvider;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.protocol.HttpClientContext;
import org.apache.http.impl.auth.BasicScheme;
import org.apache.http.impl.client.BasicAuthCache;
import org.apache.http.impl.client.BasicCredentialsProvider;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;

public class GetEksamensinfo {

    private static String theUrl = "https://fs-test.uio.no/eksamen/eksamensinfo?institusjonsnr=185&emnekode=AST2180&versjonskode=1&arstall=2015&terminkode=HØST&malform=EN";


    public static void main(String[] args) throws Exception {
        HttpHost target = new HttpHost("fs-test.uio.no", 443, "https");
        CredentialsProvider credsProvider = new BasicCredentialsProvider();
        credsProvider.setCredentials(
            new AuthScope(target.getHostName(), target.getPort()),
            new UsernamePasswordCredentials("brukernavn", "passord"));
        CloseableHttpClient client = HttpClients.custom()
            .setDefaultCredentialsProvider(credsProvider).build();

        AuthCache authCache = new BasicAuthCache();
        BasicScheme basicAuth = new BasicScheme();
        authCache.put(target, basicAuth);

        HttpClientContext localContext = HttpClientContext.create();
        localContext.setAuthCache(authCache);

        HttpGet get = new HttpGet(theUrl);

        HttpResponse response = client.execute(get);
        response.getEntity().writeTo(System.out);
    }
}

Eksempel på svar

{
    "id": "AST2180",
    "artermin": "15h",
    "ordning": [
        {
            "id": "MTg1fHxBU1QyMTgwfHwxfHxWU3x8MjAxNXx8SMOYU1Q=",
            "versjonskode": "1",
            "vurderingsordningnavn": "2 skriftlige og 1 muntlig prøve",
            "navn": "Samlet vurdering",
            "status": "Kontinuasjon",
            "tid": {
                "aar": 2015,
                "termin": "HØST"
            },
            "reellTid": {
                "aar": 2015,
                "termin": "HØST"
            },
            "eksamensdel": [
                {
                    "id": "MTg1fHxBU1QyMTgwfHwxfHxTMnx8MjAxNXx8SMOYU1Q=",
                    "navn": "Skriftlig eksamen 2 - gruppeoppgave",
                    "statusObligatoriskAktivitet": "N",
                    "form": "Written examination",
                    "datoEksamen": "2015-10-22",
                    "klokkeslettEksamen": "08:00",
                    "terminnr": 1,
                    "varighetTimer": 2,
                    "tid": {
                        "aar": 2015,
                        "termin": "HØST"
                    },
                    "reellTid": {
                        "aar": 2015,
                        "termin": "HØST"
                    },
                    "rom": [
                        {
                            "bygningskode": "81003",
                            "romkode": "D33309"
                        }
                    ]
                },
                {
                    "id": "MTg1fHxBU1QyMTgwfHwxfHxNfHwyMDE1fHxIw5hTVA==",
                    "navn": "Muntlig eksamen",
                    "statusObligatoriskAktivitet": "N",
                    "form": "Oral examination",
                    "terminnr": 1,
                    "tid": {
                        "aar": 2015,
                        "termin": "HØST"
                    },
                    "reellTid": {
                        "aar": 2015,
                        "termin": "HØST"
                    }
                }
            ]
        }
    ]
}

 

Hent liste av eksamener

Denne tjenesten henter en liste over tilgjengelige eksamener. Dette er en GET-tjeneste som tar følgende query-parametre:

  • institusjonsnr: Nummeret for institusjonen som du skal hente fra
  • eksamenssystem: Navnet på eksamenssystemet som skal hente data, dette er registrert på vurderingskombinasjon i FS
  • datofra: Start på datointerval det skal søkes i, gitt på form ddMMyyyy
  • datotil: Slutt på datointerval det skal søkes i, gitt på form ddMMyyyy
  • sistEndret : tidspunkt for forrige sjekk. Format: DDMMYYYY
  • kunmedstartdato : vis kun de oppføringene som har startdato satt; boolsk verdi true|false
  • campus : campuskode; vis kun eksamener på oppgitt campus
  • schema=true: Viser autogenerert json schema for retur

Denne tjenesten returnerer en JSON-liste, spesifisert her.

URL for test: https://fs-test.uio.no/eksamen/liste?institusjonsnr=<nr>&eksamenssystem=<system>&datofra=<dato>&datotil=<dato>
URL for prod: https://fsws.usit.no/eksamen/liste?institusjonsnr=<nr>&eksamenssystem=<system>&datofra=<dato>&datotil=<dato>

Java-eksempel

import org.apache.http.HttpHost;
import org.apache.http.HttpResponse;
import org.apache.http.auth.AuthScope;
import org.apache.http.auth.UsernamePasswordCredentials;
import org.apache.http.client.AuthCache;
import org.apache.http.client.CredentialsProvider;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.protocol.HttpClientContext;
import org.apache.http.impl.auth.BasicScheme;
import org.apache.http.impl.client.BasicAuthCache;
import org.apache.http.impl.client.BasicCredentialsProvider;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;

public class GetListe {

    private static String theUrl = "https://fs-test.uio.no/eksamen/liste?institusjonsnr=185&eksamenssystem=INSPERA&datofra=01012020&datotil=31122020";


    public static void main(String[] args) throws Exception {
        HttpHost target = new HttpHost("fs-test.uio.no", 443, "https");
        CredentialsProvider credsProvider = new BasicCredentialsProvider();
        credsProvider.setCredentials(
            new AuthScope(target.getHostName(), target.getPort()),
            new UsernamePasswordCredentials("brukernavn", "passord"));
        CloseableHttpClient client = HttpClients.custom()
            .setDefaultCredentialsProvider(credsProvider).build();

        AuthCache authCache = new BasicAuthCache();
        BasicScheme basicAuth = new BasicScheme();
        authCache.put(target, basicAuth);

        HttpClientContext localContext = HttpClientContext.create();
        localContext.setAuthCache(authCache);

        HttpGet get = new HttpGet(theUrl);

        HttpResponse response = client.execute(get);
        response.getEntity().writeTo(System.out);
    }
}

Eksempel på svar

[
    {
        "id": "MTg1fHxGWVMyMTQwfHwxfHxTfHwyMDE2fHwwNg==",
        "institusjonsnr": 185,
        "stedkode": "185_15_00_00",
        "emnekode": "FYS2140",
        "versjonskode": "1",
        "emnetittel": "Kvantefysikk",
        "vurdkombtittel": "1 skriftlig prøve",
        "vurdkombkode": "S",
        "eksamenssystem": "INSPERA",
        "sensursystem": "INSPERA",
        "domene": "ceres.no",
        "vurderingsform": "Skriftlig eksamen",
        "vurderingsordning": "S",
        "vurdstatuskode": "ORD",
        "kunkandidatnr": true,
        "datoSistEndret": "2016-03-29T16:46+0200",
        "tid": {
            "start": "2016 06",
            "reell": "2016 06"
        },
        "vekttype": "Studiepoeng",
        "poeng": "10"
    },
    {
        "id": "MTg1fHxLUkggMTMzfHwxfHxTfHwyMDIwfHxWxVI=",
        "institusjonsnr": 185,
        "stedkode": "185_14_00_00",
        "emnekode": "KRH 133",
        "versjonskode": "1",
        "emnetittel": "Lean innovasjon",
        "vurdkombtittel": "Innovativ eksamen",
        "vurdkombkode": "S",
        "eksamenssystem": "DEVILRY",
        "sensursystem": "FAGPWEB",
        "begrunnelsesystem": "INSPERA",
        "klagesystem": "WISEFLOW",
        "domene": "ceres.no",
        "vurderingsform": "Skriftlig eksamen",
        "vurderingsordning": "S",
        "vurdstatuskode": "ORD",
        "kunkandidatnr": false,
        "datoSistEndret": "2020-08-13T11:19+0200",
        "tid": {
            "start": "2020 VÅR",
            "reell": "2020 VÅR"
        },
        "vekttype": "Studiepoeng",
        "poeng": "7.5"
    }
]

Hent info for en eksamen

Denne tjenesten henter info for en eksamen, basert på en ID, gitt i liste. Dette er en GET-tjeneste som tar eksamenssystem og ID som en del av stien. Denne tjenesten returnerer et JSON-objekt, spesifisert her.

Queryparameter schema=true Viser autogenerert json schema for retur

URL for test: https://fs-test.uio.no/eksamen/<system>/<ID>
URL for prod: https://fsws.usit.no/eksamen/<system>/<ID>

Java-eksempel

import org.apache.http.HttpHost;
import org.apache.http.HttpResponse;
import org.apache.http.auth.AuthScope;
import org.apache.http.auth.UsernamePasswordCredentials;
import org.apache.http.client.AuthCache;
import org.apache.http.client.CredentialsProvider;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.protocol.HttpClientContext;
import org.apache.http.impl.auth.BasicScheme;
import org.apache.http.impl.client.BasicAuthCache;
import org.apache.http.impl.client.BasicCredentialsProvider;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;

public class GetEksamen {

    private static String theUrl = "https://fs-test.uio.no/eksamen/INSPERA/MTg1fHxTT1NBTlQxMDkwfHwxfHxIfHwyMDIwfHxWw4VS";


    public static void main(String[] args) throws Exception {
        HttpHost target = new HttpHost("fs-test.uio.no", 443, "https");
        CredentialsProvider credsProvider = new BasicCredentialsProvider();
        credsProvider.setCredentials(
            new AuthScope(target.getHostName(), target.getPort()),
            new UsernamePasswordCredentials("brukernavn", "passord"));
        CloseableHttpClient client = HttpClients.custom()
            .setDefaultCredentialsProvider(credsProvider).build();

        AuthCache authCache = new BasicAuthCache();
        BasicScheme basicAuth = new BasicScheme();
        authCache.put(target, basicAuth);

        HttpClientContext localContext = HttpClientContext.create();
        localContext.setAuthCache(authCache);

        HttpGet get = new HttpGet(theUrl);

        HttpResponse response = client.execute(get);
        response.getEntity().writeTo(System.out);
    }
}

Eksempel på svar

{
    "id": "MTg1fHxTT1NBTlQxMDkwfHwxfHxIfHwyMDIwfHxWw4VS",
    "institusjonsnr": 185,
    "stedkode": "185_17_09_00",
    "campuskode": "UIO",
    "emnekode": "SOSANT1090",
    "versjonskode": "1",
    "emnetittel": "Antropologiens historie",
    "vurdkombtittel": "Hjemmeeksamen",
    "vurdkombkode": "H",
    "eksamenssystem": "INSPERA",
    "sensursystem": "INSPERA",
    "begrunnelsesystem": "INSPERA",
    "klagesystem": "INSPERA",
    "start": "2020-04-27T09:00+0200",
    "domene": "uio.no",
    "slutt": "2020-04-30T14:00+0200",
    "vurderingsform": "Hjemmeeksamen",
    "sensurfrist": "2020-05-21",
    "fristKunngjoring": "2020-05-21",
    "vurderingsordning": "H",
    "vurdstatuskode": "ORD",
    "kunkandidatnr": true,
    "datoEksamenFra": "2020-05-12",
    "datoEksamenTil": "2020-05-12",
    "datoSistEndret": "2020-05-14T16:26+0200",
    "tid": {
        "start": "2020 VÅR",
        "reell": "2020 VÅR"
    },
    "kommisjoner": [
        {
            "id": "3",
            "navn": "Ordinær 3 - SM",
            "klagekommisjon": false,
            "antall_oppgaver": 0,
            "sensorer": [
                {
                    "id": "8504743",
                    "fnr": "99999999999",
                    "fornavn": "Ada",
                    "etternavn": "Alderson",
                    "brukernavn": "adaa",
                    "sensorrolle": "INTERN",
                    "kontaktinfo": {
                        "telefonnr": "12345678"
                    }
                }
            ]
        },
        {
            "id": "1",
            "navn": "Ordinær 1 - JRN",
            "klagekommisjon": false,
            "antall_oppgaver": 25,
            "sensorer": [
                {
                    "id": "123535",
                    "fnr": "88888888888",
                    "fornavn": "Bernt",
                    "etternavn": "Berntsen",
                    "brukernavn": "bernb",
                    "sensorrolle": "INTERN",
                    "kontaktinfo": {
                        "telefonnr": "12345678"
                    }
                }
            ]
        },
        {
            "id": "2",
            "navn": "Ordinær 2 - MG",
            "klagekommisjon": false,
            "antall_oppgaver": 25,
            "sensorer": [
                {
                    "id": "23544",
                    "fnr": "77777777777",
                    "fornavn": "Charlie",
                    "etternavn": "Chaplin",
                    "brukernavn": "char",
                    "sensorrolle": "INTERN",
                    "kontaktinfo": {
                        "telefonnr": "12345678"
                    }
                }
            ]
        }
    ],
    "vurderingsgrupper": [
        {
            "id": "1",
            "kandidater": [
                {
                    "id": "642675",
                    "kandidatnr": 35123,
                    "kommisjonsid": "2",
                    "fornavn": "Didrik",
                    "etternavn": "Didriksen",
                    "erKandidat": true,
                    "brukernavn": "didr",
                    "sprak": "BOKMÅL",
                    "kontaktinfo": {
                        "telefonnr": "12345678"
                    },
                    "oppmote": [],
                    "tilpasninger": [],
                    "campuskode": "UIO"
                }
            ]
        },
        {
            "id": "2",
            "kandidater": [
                {
                    "id": "5435359",
                    "kandidatnr": 14332,
                    "kommisjonsid": "2",
                    "fornavn": "Eirik",
                    "etternavn": "Eiriksen",
                    "erKandidat": true,
                    "brukernavn": "eirie",
                    "sprak": "BOKMÅL",
                    "kontaktinfo": {
                        "telefonnr": "12345678"
                    },
                    "oppmote": [],
                    "tilpasninger": [],
                    "innleveringsfrist": "2020-05-04T10:00",
                    "campuskode": "UIO"
                }
            ]
        },
        {
            "id": "3",
            "kandidater": [
                {
                    "id": "5528857",
                    "kandidatnr": 50426,
                    "kommisjonsid": "1",
                    "fornavn": "Gunhild",
                    "etternavn": "Gregersen",
                    "erKandidat": true,
                    "brukernavn": "gunhg",
                    "sprak": "BOKMÅL",
                    "kontaktinfo": {
                        "telefonnr": "12345678"
                    },
                    "oppmote": [],
                    "tilpasninger": [
                        {
                            "id": "TID",
                            "navn": "EKSTRA TID TIL SKRIFTLIG EKSAMEN",
                            "merknad": ""
                        },
                        {
                            "id": "185_SOSANT1090_1_H_2020_VÅR",
                            "merknad": "",
                            "ekstratid": "Ekstra tid (timer): 24",
                            "ekstratidTall": {
                                "type": "H",
                                "value": 24.0
                            },
                            "ekstratidTimer": 24,
                            "ekstratidMinutter": 0
                        }
                    ],
                    "campuskode": "UIO"
                }
            ]
        }
    ],
    "rom": [],
    "eksamensansvarlige": [],
    "karakterskala": {
        "kode": "NO30",
        "kodeNavn": "A - F"
    },
    "vekttype": "Studiepoeng",
    "poeng": "10"
}

Registrere sensur for eksamen

Denne tjenesten registrerer sensur for en gitt eksamen. Dette er POST-tjeneste som tar inn et JSON-objekt. Eksempel på JSON-objekt under.

Queryparameter schema=true returnerer json-schema for input.

URL for test: https://fs-test.uio.no/eksamen/sensur/<system>/registrer
URL for prod: https://fsws.usit.no/eksamen/sensur/<system>/registrer

Java-eksempel

import org.apache.http.HttpHost;
import org.apache.http.HttpResponse;
import org.apache.http.auth.AuthScope;
import org.apache.http.auth.UsernamePasswordCredentials;
import org.apache.http.client.AuthCache;
import org.apache.http.client.CredentialsProvider;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.protocol.HttpClientContext;
import org.apache.http.impl.auth.BasicScheme;
import org.apache.http.impl.client.BasicAuthCache;
import org.apache.http.impl.client.BasicCredentialsProvider;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;

public class GetListe {

    private static String theUrl = "https://fs-test.uio.no/eksamen/sensur/INSPERA/registrer";


    public static void main(String[] args) throws Exception {
        HttpHost target = new HttpHost("fs-test.uio.no", 443, "https");
        CredentialsProvider credsProvider = new BasicCredentialsProvider();
        credsProvider.setCredentials(
            new AuthScope(target.getHostName(), target.getPort()),
            new UsernamePasswordCredentials("brukernavn", "passord"));
        CloseableHttpClient client = HttpClients.custom()
            .setDefaultCredentialsProvider(credsProvider).build();

        AuthCache authCache = new BasicAuthCache();
        BasicScheme basicAuth = new BasicScheme();
        authCache.put(target, basicAuth);

        HttpClientContext localContext = HttpClientContext.create();
        localContext.setAuthCache(authCache);

        HttpPost post = new HttpPost(theUrl);

        post.setEntity(new StringEntity("json-objekt"));
        HttpResponse response = client.execute(post);
        response.getEntity().writeTo(System.out);
    }
}

Eksempel på json-objekt

Som man kan se, så kan både personlopenr og kandidatnr brukes som identifikator på person som har tatt eksamen. Kandidatnr tar presedens dersom begge sendes. For å kunne registrere personer med stryk, der man ikke har en karakterregel som aksepterer stryk, så kan man bruke status-feltet med verdi S (se nederste kandidat). Det er også åpnet for å registrere status I (ikke møtt) og A (avbrutt eksamen).

Følgende parametre kan registreres (noen av dem settes på toppnivå og vil gjelde alle sensurregistreringer, noen settes på enkeltsensurnivå):

  • Gruppeid - kan settes både på toppnivå og på individnivå
  • Saksbehandler - Brukernavn eller personløpenummer til person som overfører sensurregistreringen, settes på toppnivå
  • sensorliste - Liste over brukernavn/personløpenummer til sensorer som har utført sensur, kan settes både på toppnivå og på individnivå
  • url - Url til sted hvor studenten kan se begrunnelsen for sensuren, settes på individnivå

 

{
    "vurdId": "MTIzNHx8QVVUVEVTVDF8fDF8fFN8fDIwMTZ8fEjDmFNU",
    "institusjonsnr": 1234,
    "gruppeid":"Gruppe1-allesammen",
    "saksbehandler":{
        "brukernavn": "monaiv"
    },
    "sensorliste": [
        {"brukernavn": "sensor11"},
        {"brukernavn": "sensor12"}
    ],
    "sensur": [
        {
            "personlopenr": 3168,
            "sensorliste": [
              {"brukernavn": "sensor1"},
              {"brukernavn": "sensor2"}
            ],
            "url": "http://begrunnelse.url/Begrunnelse",
            "gruppeid": "Min Egen Gruppe2",
            "resultat": "C"
        },
        {
            "personlopenr": 973,
            "status": "A"
        },
        {
            "personlopenr": 11858,
            "url": "http://begrunnelse.url/Min",
            "resultat": "B"
        },
        {
            "personlopenr": 2829,
            "status": "S"
        }
    ]
}

Eksempel på svar

{
    "antallOk": 2,
    "antallFeil": 3,
    "feil": [
        {
            "personlopenr": 973,
            "feilmelding": "DIG99: Databasefeil kode (-20111): ORA-20111: DIG06: Kun status S (Stryk), I (ikke møtt), eller A (avbrutt eksamen) kan registreres."
        },
        {
            "personlopenr": 11858,
            "feilmelding": "DIG99: Databasefeil kode (-20111): ORA-20111: DIG01: Kan ikke registrere status og resultat for samme kandidat."
        },
        {
            "kandidatnr": 14277,
            "feilmelding": "DIG99: Databasefeil kode (-20111): ORA-20111: DIG04: Kandidat ikke registrert for eksamen."
        }
    ]
}

Testregistrere sensur for eksamen

Denne tjenesten tester registrering av sensur for en gitt eksamen. Den oppfører seg helt likt som sensurregistreringen, men ingenting skrives tilbake til FS. Dette er POST-tjeneste som tar inn et JSON-objekt. Eksempel på JSON-objekt under.

 

URL for test: https://fs-test.uio.no/eksamen/sensur/<system>/valider
URL for prod: https://fsws.usit.no/eksamen/sensur/<system>/valider

Java-eksempel

import org.apache.http.HttpHost;
import org.apache.http.HttpResponse;
import org.apache.http.auth.AuthScope;
import org.apache.http.auth.UsernamePasswordCredentials;
import org.apache.http.client.AuthCache;
import org.apache.http.client.CredentialsProvider;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.protocol.HttpClientContext;
import org.apache.http.impl.auth.BasicScheme;
import org.apache.http.impl.client.BasicAuthCache;
import org.apache.http.impl.client.BasicCredentialsProvider;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;

public class GetListe {

    private static String theUrl = "https://fs-test.uio.no/eksamen/sensur/INSPERA/valider";


    public static void main(String[] args) throws Exception {
        HttpHost target = new HttpHost("fs-test.uio.no", 443, "https");
        CredentialsProvider credsProvider = new BasicCredentialsProvider();
        credsProvider.setCredentials(
            new AuthScope(target.getHostName(), target.getPort()),
            new UsernamePasswordCredentials("brukernavn", "passord"));
        CloseableHttpClient client = HttpClients.custom()
            .setDefaultCredentialsProvider(credsProvider).build();

        AuthCache authCache = new BasicAuthCache();
        BasicScheme basicAuth = new BasicScheme();
        authCache.put(target, basicAuth);

        HttpClientContext localContext = HttpClientContext.create();
        localContext.setAuthCache(authCache);

        HttpPost post = new HttpPost(theUrl);

        post.setEntity(new StringEntity("json-objekt"));
        HttpResponse response = client.execute(post);
        response.getEntity().writeTo(System.out);
    }
}

Eksempel på json-objekt

Som man kan se, så kan både personlopenr og kandidatnr brukes som identifikator på person som har tatt eksamen. Kandidatnr tar presedens dersom begge sendes. For å kunne registrere personer med stryk, der man ikke har en karakterregel som aksepterer stryk, så kan man bruke status-feltet med verdi S (se nederste kandidat). Det er også åpnet for å registrere status I (ikke møtt) og A (avbrutt eksamen).

Følgende parametre kan registreres (noen av dem settes på toppnivå og vil gjelde alle sensurregistreringer, noen settes på enkeltsensurnivå):

  • Gruppeid - kan settes både på toppnivå og på individnivå
  • Saksbehandler - Brukernavn eller personløpenummer til person som overfører sensurregistreringen, settes på toppnivå
  • sensorliste - Liste over brukernavn/personløpenummer til sensorer som har utført sensur, kan settes både på toppnivå og på individnivå
  • url - Url til sted hvor studenten kan se begrunnelsen for sensuren, settes på individnivå

 

{
    "vurdId": "MTIzNHx8QVVUVEVTVDF8fDF8fFN8fDIwMTZ8fEjDmFNU",
    "institusjonsnr": 1234,
    "gruppeid":"Gruppe1-allesammen",
    "saksbehandler":{
        "brukernavn": "monaiv"
    },
    "sensorliste": [
        {"brukernavn": "sensor11"},
        {"personlopenr": 923}
    ],
    "sensur": [
        {
            "personlopenr": 3168,
            "sensorliste": [
              {"brukernavn": "sensor1"},
              {"brukernavn": "sensor2"}
            ],
            "url": "http://begrunnelse.url/Begrunnelse",
            "gruppeid": "Min Egen Gruppe2",
            "resultat": "C"
        },
        {
            "personlopenr": 973,
            "status": "A"
        },
        {
            "personlopenr": 11858,
            "url": "http://begrunnelse.url/Min",
            "resultat": "B"
        },
        {
            "personlopenr": 2829,
            "status": "S"
        }
    ]
}

Eksempel på svar

{
    "antallOk": 2,
    "antallFeil": 3,
    "feil": [
        {
            "personlopenr": 973,
            "feilmelding": "DIG99: Databasefeil kode (-20111): ORA-20111: DIG06: Kun status S (Stryk), I (ikke møtt), eller A (avbrutt eksamen) kan registreres."
        },
        {
            "personlopenr": 11858,
            "feilmelding": "DIG99: Databasefeil kode (-20111): ORA-20111: DIG01: Kan ikke registrere status og resultat for samme kandidat."
        },
        {
            "kandidatnr": 14277,
            "feilmelding": "DIG99: Databasefeil kode (-20111): ORA-20111: DIG04: Kandidat ikke registrert for eksamen."
        }
    ]
}

Registrere oppmøte for eksamen

Denne tjenesten registrerer oppmøte for en gitt eksamen. Dette er POST-tjeneste som tar inn et JSON-objekt. Eksempel på JSON-objekt under.

Queryparameter schema=true returnerer json-schema for input.

URL for test: https://fs-test.uio.no/eksamen/oppmote/<system>/registrer
URL for prod: https://fsws.usit.no/eksamen/oppmote/<system>/registrer

Java-eksempel

import org.apache.http.HttpHost;
import org.apache.http.HttpResponse;
import org.apache.http.auth.AuthScope;
import org.apache.http.auth.UsernamePasswordCredentials;
import org.apache.http.client.AuthCache;
import org.apache.http.client.CredentialsProvider;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.protocol.HttpClientContext;
import org.apache.http.impl.auth.BasicScheme;
import org.apache.http.impl.client.BasicAuthCache;
import org.apache.http.impl.client.BasicCredentialsProvider;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;

public class GetListe {

    private static String theUrl = "https://fs-test.uio.no/eksamen/oppmote/INSPERA/registrer";


    public static void main(String[] args) throws Exception {
        HttpHost target = new HttpHost("fs-test.uio.no", 443, "https");
        CredentialsProvider credsProvider = new BasicCredentialsProvider();
        credsProvider.setCredentials(
            new AuthScope(target.getHostName(), target.getPort()),
            new UsernamePasswordCredentials("brukernavn", "passord"));
        CloseableHttpClient client = HttpClients.custom()
            .setDefaultCredentialsProvider(credsProvider).build();

        AuthCache authCache = new BasicAuthCache();
        BasicScheme basicAuth = new BasicScheme();
        authCache.put(target, basicAuth);

        HttpClientContext localContext = HttpClientContext.create();
        localContext.setAuthCache(authCache);

        HttpPost post = new HttpPost(theUrl);

        post.setEntity(new StringEntity("json-objekt"));
        HttpResponse response = client.execute(post);
        response.getEntity().writeTo(System.out);
    }
}

Eksempel på json-objekt

Som man kan se, så kan både personlopenr og kandidatnr brukes som identifikator på person som har tatt eksamen.

 

{
    "vurdId": "MTg1fHxBTUgtRVhGQUN8fDF8fFN8fDIwMTV8fDEy",
    "institusjonsnr": 1234,
    "oppmote": [
        {
            "personlopenr": 5198,
            "oppmoteStatus": "A"
        },
        {
            "personlopenr": 2106,
            "oppmoteStatus": "U"
        },
        {
            "personlopenr": 5287,
            "oppmoteStatus": "I"
        },
        {
            "personlopenr": 2109,
            "oppmoteStatus": "M"
        },
        {
            "kandidatnr": 513,
            "oppmoteStatus": "A"
        }
    ]
}

Gyldige statuser kan angis i FS, gyldige for denne tjenesten er:

  • A: Trekk under eksamen
  • M: Møtt til eksamen
  • I: Ikke møtt

Eksempel på svar

{
    "antallOk": 3,
    "antallFeil": 2,
    "feil": [
        {
            "personlopenr": 2106,
            "feilmelding": "DIG99: Databasefeil kode (-20111): ORA-20111: DIG06: Kun status S (Stryk), I (ikke møtt), eller A (avbrutt eksamen) kan registreres."
        },
        {
            "personlopenr": 5287,
            "feilmelding": "DIG99: Databasefeil kode (-20111): ORA-20111: DIG04: Kandidat ikke registrert for eksamen."
        }
    ]
}

Hente planleggingsdata for eksamen

Denne tjenesten henter planleggingsdata for en eksamen

Queryparameter schema=true returnerer json-schema for retur.

URL for test: https://fs-test.uio.no/eksamen/planleggingsdata?emnekode=...&arstall=...&terminkode=...
URL for prod: https://fsws.usit.no/eksamen/planleggingsdata?emnekode=...&arstall=...&terminkode=...

Java-eksempel

import org.apache.http.HttpHost;
import org.apache.http.HttpResponse;
import org.apache.http.auth.AuthScope;
import org.apache.http.auth.UsernamePasswordCredentials;
import org.apache.http.client.AuthCache;
import org.apache.http.client.CredentialsProvider;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.protocol.HttpClientContext;
import org.apache.http.impl.auth.BasicScheme;
import org.apache.http.impl.client.BasicAuthCache;
import org.apache.http.impl.client.BasicCredentialsProvider;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;

public class GetEksamen {

    private static String theUrl = "https://fs-test.uio.no/eksamen/planleggingsdata?emnekode=ENG1100&arstall=2015&terminkode=HØST";


    public static void main(String[] args) throws Exception {
        HttpHost target = new HttpHost("fs-test.uio.no", 443, "https");
        CredentialsProvider credsProvider = new BasicCredentialsProvider();
        credsProvider.setCredentials(
            new AuthScope(target.getHostName(), target.getPort()),
            new UsernamePasswordCredentials("brukernavn", "passord"));
        CloseableHttpClient client = HttpClients.custom()
            .setDefaultCredentialsProvider(credsProvider).build();

        AuthCache authCache = new BasicAuthCache();
        BasicScheme basicAuth = new BasicScheme();
        authCache.put(target, basicAuth);

        HttpClientContext localContext = HttpClientContext.create();
        localContext.setAuthCache(authCache);

        HttpGet get = new HttpGet(theUrl);

        HttpResponse response = client.execute(get);
        response.getEntity().writeTo(System.out);
    }
}

Eksempel på svar

{
    "emnekode": "ENG1100",
    "enheter": [
        {
            "antallForrigeAr": 265,
            "antallUndervisningsmeldt": 330,
            "antallVurderingsmeldt": 302,
            "arstall": 2015,
            "rom": [],
            "statusPubliser": "J",
            "vurderingsnavn": "Oppmøte på 11 av 14 seminarer + to skriftlige innleveringer",
            "vurdkombkode": "OBL1",
            "vurdkombtypekode": "OBLIG",
            "vurdstatuskode": "ORD",
            "vurdtidkode": "HØST"
        },
        {
            "antallForrigeAr": 279,
            "antallUndervisningsmeldt": 330,
            "antallVurderingsmeldt": 302,
            "arstall": 2015,
            "datoEksamen": "2015-12-07",
            "klokkeslettFremmoteTid": "09:00",
            "rom": [
                {
                    "bygningskode": "BL04",
                    "romkode": "126",
                    "varighetTimer": 4.0
                },
                {
                    "bygningskode": "BL04",
                    "romkode": "120",
                    "varighetTimer": 4.0
                },
                {
                    "bygningskode": "BL04",
                    "romkode": "114",
                    "varighetTimer": 4.0
                },
                {
                    "bygningskode": "BL04",
                    "romkode": "106",
                    "varighetTimer": 4.0
                }
            ],
            "statusIndTid": "N",
            "statusPubliser": "J",
            "varighetTimer": 4.0,
            "vurderingsformkode": "S",
            "vurderingsnavn": "Skriftlig eksamen",
            "vurdkombkode": "S",
            "vurdkombtypekode": "AVVIKLING",
            "vurdstatuskode": "ORD",
            "vurdtidkode": "HØST"
        }
    ],
    "semesterkode": "15H",
    "

Registrere planleggingsdata for eksamen

Denne tjenesten registrerer planleggingsdata for en eksamen

Queryparameter schema=true returnerer json-schema for input.

URL for test: https://fs-test.uio.no/eksamen/planleggingsdata/oppdater
URL for prod: https://fsws.usit.no/eksamen/planleggingsdata/oppdater

Java-eksempel

import org.apache.http.HttpHost;
import org.apache.http.HttpResponse;
import org.apache.http.auth.AuthScope;
import org.apache.http.auth.UsernamePasswordCredentials;
import org.apache.http.client.AuthCache;
import org.apache.http.client.CredentialsProvider;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.protocol.HttpClientContext;
import org.apache.http.impl.auth.BasicScheme;
import org.apache.http.impl.client.BasicAuthCache;
import org.apache.http.impl.client.BasicCredentialsProvider;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;

public class OppdaterEksamen {

    private static String theUrl = "https://fs-test.uio.no/eksamen/planleggingsdata/oppdater;


    public static void main(String[] args) throws Exception {
        HttpHost target = new HttpHost("fs-test.uio.no", 443, "https");
        CredentialsProvider credsProvider = new BasicCredentialsProvider();
        credsProvider.setCredentials(
            new AuthScope(target.getHostName(), target.getPort()),
            new UsernamePasswordCredentials("brukernavn", "passord"));
        CloseableHttpClient client = HttpClients.custom()
            .setDefaultCredentialsProvider(credsProvider).build();

        AuthCache authCache = new BasicAuthCache();
        BasicScheme basicAuth = new BasicScheme();
        authCache.put(target, basicAuth);

        HttpClientContext localContext = HttpClientContext.create();
        localContext.setAuthCache(authCache);

        HttpPost post = new HttpPost(theUrl);

        post.setEntity(new StringEntity("se eksempel på json-data under"));
        HttpResponse response = client.execute(post);
        response.getEntity().writeTo(System.out);
    }
}

Eksempel på json-data som sendes inn

{
    "arstall": 2008,
    "datoEksamen": "2008-05-01",
    "emnekode": "AST2110",
    "institusjonsnr": 185,
    "klokkeslettFremmoteTid": "08:00",
    "versjonskode": "1",
    "vurdkombkode": "S",
    "vurdtidkode": "06",
    "romdata": [
        {
            "bygningskode": "201",
            "klokkeslettFremmoteTid": "09:00",
            "romkode": "201",
            "statusLaSta": "J",
            "tallKandidaterIRom": 10,
            "varighetTimer": 5.0
        }
    ]
}

Hent begrunnelser for eksamen

Denne tjenesten henter begrunnelser for en gitt eksamen. Dette er en GET-tjeneste:

Queryparameter schema=true viser json-schema for retur.

System: Kode for datasystem brukt ifm. behandling av begrunnelser.

URL for test: https://fs-test.uio.no/eksamen/begrunnelser/<SYSTEM>/<ID>
URL for prod: https://fsws.usit.no/eksamen/begrunnelser/<SYSTEM>/<ID>

Java-eksempel

import org.apache.http.HttpHost;
import org.apache.http.HttpResponse;
import org.apache.http.auth.AuthScope;
import org.apache.http.auth.UsernamePasswordCredentials;
import org.apache.http.client.AuthCache;
import org.apache.http.client.CredentialsProvider;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.protocol.HttpClientContext;
import org.apache.http.impl.auth.BasicScheme;
import org.apache.http.impl.client.BasicAuthCache;
import org.apache.http.impl.client.BasicCredentialsProvider;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;

public class GetBegrunnelser {

    private static String theUrl = "https://fs-test.uio.no/eksamen/begrunnelser/INSPERA/MTIzNHx8QVVUVEVTVDF8fDF8fFNLUklGVExJR3x8MjAxNnx8SMOYU1Q=";


    public static void main(String[] args) throws Exception {
        HttpHost target = new HttpHost("fs-test.uio.no", 443, "https");
        CredentialsProvider credsProvider = new BasicCredentialsProvider();
        credsProvider.setCredentials(
            new AuthScope(target.getHostName(), target.getPort()),
            new UsernamePasswordCredentials("brukernavn", "passord"));
        CloseableHttpClient client = HttpClients.custom()
            .setDefaultCredentialsProvider(credsProvider).build();

        AuthCache authCache = new BasicAuthCache();
        BasicScheme basicAuth = new BasicScheme();
        authCache.put(target, basicAuth);

        HttpClientContext localContext = HttpClientContext.create();
        localContext.setAuthCache(authCache);

        HttpGet get = new HttpGet(theUrl);

        HttpResponse response = client.execute(get);
        response.getEntity().writeTo(System.out);
    }
}

Eksempel på svar

{
    "id": "MTg1fHxTUEVENDMwMHx8MXx8SFMtU3x8MjAxOXx8SMOYU1Q=",
    "institusjonsnr": 185,
    "stedkode": "185_18_03_00",
    "campuskode": "UIO",
    "emnekode": "SPED4300",
    "versjonskode": "1",
    "emnetittel": "Fordypning i psykososiale vansker",
    "vurdkombtittel": "Skriftlig eksamen",
    "vurdkombkode": "HS-S",
    "eksamenssystem": "INSPERA",
    "sensursystem": "INSPERA",
    "begrunnelsesystem": "INSPERA",
    "klagesystem": "INSPERA",
    "start": "2020-06-03T09:00+0200",
    "domene": "uio.no",
    "varighetTimer": 6.0,
    "vurderingsform": "Individuell skriftlig prøve",
    "vurdstatuskode": "ORD",
    "kunkandidatnr": true,
    "datoSistEndret": "2020-09-04T13:51+0200",
    "tid": {
        "start": "2019 HØST",
        "reell": "2020 VÅR"
    },
    "begrunnelser": [
        {
            "personlopenr": "1234567",
            "kandidatnr": 123456,
            "brukernavn": "adab",
            "kommisjonsId": "1",
            "datoKlageMottat": "2020-06-18",
            "datoVedtakFormidlet": "2020-06-18"
        },
        {
            "personlopenr": "2345678",
            "kandidatnr": 234567,
            "brukernavn": "bernla",
            "kommisjonsId": "3",
            "datoKlageMottat": "2020-06-18",
            "datoVedtakFormidlet": "2020-06-18"
        }
    ],
    "vekttype": "Studiepoeng",
    "poeng": "40"
}

Registrere begrunnelser for eksamen

Denne POST-tjenesten registrerer begrunnelse gitt til en kandidat for en eksamen.
Begrunnelsen leses inn som en base64-kodet streng-representasjon av enten et pdf-dokument eller ren tekst. Feltet "contentTypeBegrunnelse" angir hva.
Tjenesten tar også inn url til begrunnelse i feltet "urlBegrunnelse", til registrering dersom det ikke ble lagt inn som del av sensurregisreringen.
Formen angis med feltet "begrunnelsesform" som kan være enten "SKRIFTLIG" eller "MUNTLIG".

Queryparameter schema=true returnerer json-schema for input.

URL for test: https://fs-test.uio.no/eksamen/begrunnelser/<SYSTEM>
URL for prod: https://fsws.usit.no/eksamen/begrunnelser/<SYSTEM>

Java-eksempel

import org.apache.http.HttpHost;
import org.apache.http.HttpResponse;
import org.apache.http.auth.AuthScope;
import org.apache.http.auth.UsernamePasswordCredentials;
import org.apache.http.client.AuthCache;
import org.apache.http.client.CredentialsProvider;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.protocol.HttpClientContext;
import org.apache.http.impl.auth.BasicScheme;
import org.apache.http.impl.client.BasicAuthCache;
import org.apache.http.impl.client.BasicCredentialsProvider;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;

public class OppdaterBegrunnelser {

    private static String theUrl = "https://fs-test.uio.no/eksamen/begrunnelser/INSPERA;


    public static void main(String[] args) throws Exception {
        HttpHost target = new HttpHost("fs-test.uio.no", 443, "https");
        CredentialsProvider credsProvider = new BasicCredentialsProvider();
        credsProvider.setCredentials(
            new AuthScope(target.getHostName(), target.getPort()),
            new UsernamePasswordCredentials("brukernavn", "passord"));
        CloseableHttpClient client = HttpClients.custom()
            .setDefaultCredentialsProvider(credsProvider).build();

        AuthCache authCache = new BasicAuthCache();
        BasicScheme basicAuth = new BasicScheme();
        authCache.put(target, basicAuth);

        HttpClientContext localContext = HttpClientContext.create();
        localContext.setAuthCache(authCache);

        HttpPost post = new HttpPost(theUrl);

        post.setEntity(new StringEntity("se eksempel på json-data under"));
        HttpResponse response = client.execute(post);
        response.getEntity().writeTo(System.out);
    }
}

Eksempel på json-data som sendes inn

{
    "id": "MTIzNHx8QVVUVEVTVDF8fDF8fFNLUklGVExJR3x8MjAxNnx8SMOYU1Q=", 
    "institusjonsnr": 1234,
    "begrunnelser": [
        {
            "datoBegrunnelseBedtOm": "2016-06-06", 
            "datoBegrunnelseGitt": "2016-06-06",
            "dokumentBegrunnelse": "RGV0dGUgZXIgYmVncnVubmVsc2VuIHNvbSBwbGFpbi10ZXh0LCBiYXNlNjQtZW5rb2RldC4=",  
            "contentTypeBegrunnelse": "text/plain",
            "kandidatnr": 1,
            "urlBegrunnelse": "http://min.begrunnelse.url/ligger_her",
            "begrunnelsesform": "SKRIFTLIG",
            "personlopenr": 2829
        }
    ]
}

Eksempel på svar

{
    "antallOk": 1,
    "antallFeil": 0
}

Hent klager for eksamen

Denne tjenesten henter klager for en gitt eksamen. Dette er en GET-tjeneste:

Queryparameter schema=true viser json-schema for retur.

System: Kode for datasystem brukt ifm. klagebehandling.

URL for test: https://fs-test.uio.no/eksamen/klager/<SYSTEM>/<ID>
URL for prod: https://fsws.usit.no/eksamen/klager/<SYSTEM>/<ID>

Java-eksempel

import org.apache.http.HttpHost;
import org.apache.http.HttpResponse;
import org.apache.http.auth.AuthScope;
import org.apache.http.auth.UsernamePasswordCredentials;
import org.apache.http.client.AuthCache;
import org.apache.http.client.CredentialsProvider;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.protocol.HttpClientContext;
import org.apache.http.impl.auth.BasicScheme;
import org.apache.http.impl.client.BasicAuthCache;
import org.apache.http.impl.client.BasicCredentialsProvider;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;

public class GetKlager {

    private static String theUrl = "https://fs-test.uio.no/eksamen/klager/INSPERA/MTg1fHxTUEVENDMwMHx8MXx8SFMtU3x8MjAxOXx8SMOYU1Q=";


    public static void main(String[] args) throws Exception {
        HttpHost target = new HttpHost("fs-test.uio.no", 443, "https");
        CredentialsProvider credsProvider = new BasicCredentialsProvider();
        credsProvider.setCredentials(
            new AuthScope(target.getHostName(), target.getPort()),
            new UsernamePasswordCredentials("brukernavn", "passord"));
        CloseableHttpClient client = HttpClients.custom()
            .setDefaultCredentialsProvider(credsProvider).build();

        AuthCache authCache = new BasicAuthCache();
        BasicScheme basicAuth = new BasicScheme();
        authCache.put(target, basicAuth);

        HttpClientContext localContext = HttpClientContext.create();
        localContext.setAuthCache(authCache);

        HttpGet get = new HttpGet(theUrl);

        HttpResponse response = client.execute(get);
        response.getEntity().writeTo(System.out);
    }
}

Eksempel på svar

{
    "id": "MTg1fHxLUkgyMDF8fDF8fFN8fDIwMjB8fFbDhVI=",
    "institusjonsnr": 185,
    "stedkode": "185_00_00_00",
    "emnekode": "KRH201",
    "versjonskode": "1",
    "emnetittel": "Langsiktig kvalitetssikring",
    "vurdkombtittel": "Skriftlig eksamen",
    "vurdkombkode": "S",
    "eksamenssystem": "INSPERA",
    "sensursystem": "INSPERA",
    "begrunnelsesystem": "FAGPWEB",
    "klagesystem": "FAGPWEB",
    "start": "2020-05-10T00:00+0200",
    "domene": "ceres.no",
    "vurderingsform": "Skriftlig eksamen",
    "klagefrist": "2021-01-21",
    "vurderingsordning": "S",
    "vurdstatuskode": "ORD",
    "kunkandidatnr": true,
    "datoSistEndret": "2020-06-26T09:11+0200",
    "tid": {
        "start": "2020 VÅR",
        "reell": "2020 VÅR"
    },
    "klager": [
        {
            "personlopenr": "11814",
            "kandidatnr": 3,
            "fornavn": "Georgie",
            "etternavn": "Washington",
            "klagestatus": "AKTIV",
            "kommisjonsidOppr": "1",
            "kommisjonsidNy": "2"
        },
        {
            "personlopenr": "11878",
            "kandidatnr": 2,
            "fornavn": "James",
            "etternavn": "Buchanan",
            "klagestatus": "AKTIV",
            "kommisjonsidOppr": "1",
            "kommisjonsidNy": "2"
        }
    ],
    "vekttype": "Studiepoeng",
    "poeng": "10"
}

Registrere vedtak for klagesensur (Registrere vedtak for eksamen)

Denne tjenesten registrerer vedtak på en klage for en eksamen

Queryparameter schema=true returnerer json-schema for input.

System: Kode for datasystem brukt ifm. klagebehandling.

URL for test: https://fs-test.uio.no/eksamen/vedtak/<SYSTEM>
URL for prod: https://fsws.usit.no/eksamen/vedtak/<SYSTEM>

I tillegg er det nå også mulig å registrere følgende parametre, ref. registrere sensur for en eksamen (noen av parametrene settes på toppnivå og vil gjelde alle sensurregistreringer, noen settes på enkeltsensurnivå):

  • Saksbehandler - Brukernavn eller personløpenummer til person som overfører sensurregistreringen, settes på toppnivå
  • sensorliste - Liste over brukernavn/personløpenummer til sensorer som har utført sensur, kan settes både på toppnivå og på individnivå

Java-eksempel

import org.apache.http.HttpHost;
import org.apache.http.HttpResponse;
import org.apache.http.auth.AuthScope;
import org.apache.http.auth.UsernamePasswordCredentials;
import org.apache.http.client.AuthCache;
import org.apache.http.client.CredentialsProvider;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.protocol.HttpClientContext;
import org.apache.http.impl.auth.BasicScheme;
import org.apache.http.impl.client.BasicAuthCache;
import org.apache.http.impl.client.BasicCredentialsProvider;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;

public class OppdaterVedtak {

    private static String theUrl = "https://fs-test.uio.no/eksamen/vedtak/INSPERA;


    public static void main(String[] args) throws Exception {
        HttpHost target = new HttpHost("fs-test.uio.no", 443, "https");
        CredentialsProvider credsProvider = new BasicCredentialsProvider();
        credsProvider.setCredentials(
            new AuthScope(target.getHostName(), target.getPort()),
            new UsernamePasswordCredentials("brukernavn", "passord"));
        CloseableHttpClient client = HttpClients.custom()
            .setDefaultCredentialsProvider(credsProvider).build();

        AuthCache authCache = new BasicAuthCache();
        BasicScheme basicAuth = new BasicScheme();
        authCache.put(target, basicAuth);

        HttpClientContext localContext = HttpClientContext.create();
        localContext.setAuthCache(authCache);

        HttpPost post = new HttpPost(theUrl);

        post.setEntity(new StringEntity("se eksempel på json-data under"));
        HttpResponse response = client.execute(post);
        response.getEntity().writeTo(System.out);
    }
}

Eksempel på json-data som sendes inn

{
    "id": "MTIzNHx8QVVUVEVTVDF8fDF8fE1VTlRMSUd8fDIwMTZ8fFbDhVI=",
    "institusjonsnr": 1234,
    "saksbehandler": {
        "brukernavn": "krimei"
    },
    "sensorliste": [
        {
            "brukernavn": "sensor11"
        },
        {
            "brukernavn": "sensor12"
        }
    ],
    "vedtak": [
        {
            "kandidatnr": 1,
            "karakter": "A",
            "sensorliste": [
                {
                    "brukernavn": "sensor1"
                },
                {
                    "personlopenr": 123456
                }
            ]
        },
        {
            "status": "J",
            "personlopenr": 971
        }
    ]
}

Eksempel på svar

{
    "antallOk": 1,
    "antallFeil": 1,
    "feil": [
        {
            "personlopenr": 971,
            "feilmelding": "DIG43: Kun status I (Ikke møtt), Ø (Manglende oblig), A (Avbrutt eksamen), eller S (Stryk) kan registreres."
        }
    ]
}

Registrere gruppeid for kandidater

Denne POST tjenesten registrerer gruppeid (gruppenavn) på kandidater for en gitt eksamen

Queryparameter schema=true returnerer json-schema for input.

URL for test: https://fs-test.uio.no/eksamen/gruppeid/<SYSTEM>/registrer
URL for prod: https://fsws.usit.no/eksamen/gruppeid/<SYSTEM>/registrer

Java-eksempel

import org.apache.http.HttpHost;
import org.apache.http.HttpResponse;
import org.apache.http.auth.AuthScope;
import org.apache.http.auth.UsernamePasswordCredentials;
import org.apache.http.client.AuthCache;
import org.apache.http.client.CredentialsProvider;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.protocol.HttpClientContext;
import org.apache.http.impl.auth.BasicScheme;
import org.apache.http.impl.client.BasicAuthCache;
import org.apache.http.impl.client.BasicCredentialsProvider;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;

public class RegistrerGruppeid {

    private static String theUrl = "https://fs-test.uio.no/eksamen/gruppeid/INSPERA/registrer;


    public static void main(String[] args) throws Exception {
        HttpHost target = new HttpHost("fs-test.uio.no", 443, "https");
        CredentialsProvider credsProvider = new BasicCredentialsProvider();
        credsProvider.setCredentials(
            new AuthScope(target.getHostName(), target.getPort()),
            new UsernamePasswordCredentials("brukernavn", "passord"));
        CloseableHttpClient client = HttpClients.custom()
            .setDefaultCredentialsProvider(credsProvider).build();

        AuthCache authCache = new BasicAuthCache();
        BasicScheme basicAuth = new BasicScheme();
        authCache.put(target, basicAuth);

        HttpClientContext localContext = HttpClientContext.create();
        localContext.setAuthCache(authCache);

        HttpPost post = new HttpPost(theUrl);

        post.setEntity(new StringEntity("se eksempel på json-data under"));
        HttpResponse response = client.execute(post);
        response.getEntity().writeTo(System.out);
    }
}

Eksempel på json-data som sendes inn

{
    "vurdId": "MTIzNHx8QVVUVEVTVDF8fDF8fFN8fDIwMTZ8fFbDhVI=",
    "institusjonsnr": 1234,
    "gruppeid": [
                {
            "personlopenr": 2133,
            "gruppeid": "Dette er en lang gruppeid som kommer til å feile dersom man prøver å sende den inn."
        },
        {
            "personlopenr": 2133,
            "gruppeid": "Gruppe 1-m2"
        },
        {
            "personlopenr": 971,
            "gruppeid": "Denne kandidaten finnes ikke oppmeldt til eksamen angitt av vurdId."
        },
           {
            "personlopenr": 2605,
            "gruppeid": "Gruppe 1-2"
        },
                {
            "personlopenr": 2133,
            "gruppeid": "Gruppe 1-2"
        }
    ]
}

Eksempel på respons

{
    "antallOk": 3,
    "antallFeil": 2,
    "feil": [
        {
            "personlopenr": 2133,
            "feilmelding": "DIG99: Databasefeil kode (-12899): ORA-12899: value too large for column \"FS\".\"VURDKOMBMELDING\".\"GRUPPEID\" (actual: 83, maximum: 50)"
        },
        {
            "personlopenr": 971,
            "feilmelding": "DIG99: Databasefeil kode (100): ORA-01403: no data found"
        }
    ]
}

Registrere tittel på oppgave

Denne POST tjenesten registrerer oppgavetittel på vurderingsmeldinger

Queryparameter schema=true returnerer json-schema for input.

URL for test: https://fs-test.uio.no/eksamen/oppgavetittel/<SYSTEM>/registrer
URL for prod: https://fsws.usit.no/eksamen/oppgavetittel/<SYSTEM>/registrer

Java-eksempel

import org.apache.http.HttpHost;
import org.apache.http.HttpResponse;
import org.apache.http.auth.AuthScope;
import org.apache.http.auth.UsernamePasswordCredentials;
import org.apache.http.client.AuthCache;
import org.apache.http.client.CredentialsProvider;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.protocol.HttpClientContext;
import org.apache.http.impl.auth.BasicScheme;
import org.apache.http.impl.client.BasicAuthCache;
import org.apache.http.impl.client.BasicCredentialsProvider;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;

public class RegistrerOppgavetittel {

    private static String theUrl = "https://fs-test.uio.no/eksamen/oppgavetittel/INSPERA/registrer";


    public static void main(String[] args) throws Exception {
        HttpHost target = new HttpHost("fs-test.uio.no", 443, "https");
        CredentialsProvider credsProvider = new BasicCredentialsProvider();
        credsProvider.setCredentials(
            new AuthScope(target.getHostName(), target.getPort()),
            new UsernamePasswordCredentials("brukernavn", "passord"));
        CloseableHttpClient client = HttpClients.custom()
            .setDefaultCredentialsProvider(credsProvider).build();

        AuthCache authCache = new BasicAuthCache();
        BasicScheme basicAuth = new BasicScheme();
        authCache.put(target, basicAuth);

        HttpClientContext localContext = HttpClientContext.create();
        localContext.setAuthCache(authCache);

        HttpPost post = new HttpPost(theUrl);

        post.setEntity(new StringEntity("se eksempel på json-data under"));
        HttpResponse response = client.execute(post);
        response.getEntity().writeTo(System.out);
    }
}

Eksempel på json-data som sendes inn

{
   "vurdId": "MTIzNHx8QVVUVEVTVDF8fDF8fFN8fDIwMTZ8fEjDmFNU",
   "institusjonsnr": 1234,
   "oppgavetittel": [
       {
           "personlopenr": 973,
           "engelsk": "What a joke",
           "original": "Bare tull"
       },
       {
           "kandidatnr": 1231,
           "engelsk": "Sumtnsumtn",
           "original": "Etellerannet"
       }
   ]
}

Eksempel på respons

{
    "antallOk": 1,
    "antallFeil": 1,
    "feil": [
        {
            "kandidatnr": 1231,
            "feilmelding": "DIG99: Databasefeil kode (-20111): ORA-20111: DIG04: Kandidat ikke registrert for eksamen."
        }
    ]
}







Hent eksamener filtrert på hjelpemiddel

Denne GET tjenesten henter ut eksamener filtrert på hjelpemiddel, årstall og termin

  • institusjonsnr: Nummeret for institusjonen som du skal hente fra
  • hjelpemiddel: Hjelpemiddel for eksamen
  • arstall: Årstall for eksamen
  • terminkode: Terminkoden(Uppercase)
  • schema=true: Viser autogenerert json schema for retur

Denne tjenesten returnerer ett eller flere JSON-objekt.

URL for test: https://fs-test.uio.no/eksamen/hjelpemiddel?institusjonsnr=...&hjelpemiddel=...&arstall=...&terminkode=...
URL for prod: https://fsws.usit.no/eksamen/hjelpemiddel?institusjonsnr=....&hjelpemiddel=...&arstall=...&terminkode=...

Java-eksempel

 

import org.apache.http.HttpHost;
import org.apache.http.HttpResponse;
import org.apache.http.auth.AuthScope;
import org.apache.http.auth.UsernamePasswordCredentials;
import org.apache.http.client.AuthCache;
import org.apache.http.client.CredentialsProvider;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.protocol.HttpClientContext;
import org.apache.http.impl.auth.BasicScheme;
import org.apache.http.impl.client.BasicAuthCache;
import org.apache.http.impl.client.BasicCredentialsProvider;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;

public class GetEksamenerHjelpeMiddel {

    private static String theUrl = "https://fs-test.uio.no/eksamen
                                /hjelpemiddel?institusjonsnr=185&hjelpemiddel=kalkulator&arstall=2009&terminkode=HØST";


    public static void main(String[] args) throws Exception {
        HttpHost target = new HttpHost("fs-test.uio.no", 443, "https");
        CredentialsProvider credsProvider = new BasicCredentialsProvider();
        credsProvider.setCredentials(
            new AuthScope(target.getHostName(), target.getPort()),
            new UsernamePasswordCredentials("brukernavn", "passord"));
        CloseableHttpClient client = HttpClients.custom()
            .setDefaultCredentialsProvider(credsProvider).build();

        AuthCache authCache = new BasicAuthCache();
        BasicScheme basicAuth = new BasicScheme();
        authCache.put(target, basicAuth);

        HttpClientContext localContext = HttpClientContext.create();
        localContext.setAuthCache(authCache);

        HttpGet get = new HttpGet(theUrl);

        HttpResponse response = client.execute(get);
        response.getEntity().writeTo(System.out);
    }
}

Eksempel på svar

[
    {
        "id": "MTg1fHxWSzEwQ3x8MXx8U3x8MjAwOXx8SMOYU1Q=",
        "institusjonsnr": 185,
        "emnekode": "VK10C",
        "versjonskode": "1",
        "emnetittel": "Vk10c",
        "vurdkombtittel": "Skriftlig eksamen",
        "vurdkombkode": "S",
        "start": "2009-10-15T09:00+0200",
        "domene": "uio.no",
        "varighetTimer": 3,
        "vurderingsform": "Skriftlig eksamen",
        "vurdstatuskode": "ORD",
        "kunkandidatnr": true,
        "datoSistEndret": "2018-05-08T22:13+0200",
        "tid": {
            "start": "2009 HØST",
            "reell": "2009 HØST"
        },
        "kandidater": [
            "17517790125",
            "13586990122",
            "18586890006",
            "15597790349"
        ]
    },
    {
        "id": "MTg1fHxWSzEwQnx8MXx8U3x8MjAwOXx8SMOYU1Q=",
        "institusjonsnr": 185,
        "emnekode": "VK10B",
        "versjonskode": "1",
        "emnetittel": "Vk10b",
        "vurdkombtittel": "Skriftlig prøve",
        "vurdkombkode": "S",
        "start": "2009-12-10T09:00+0100",
        "domene": "uio.no",
        "varighetTimer": 3,
        "vurderingsform": "Skriftlig eksamen",
        "vurdstatuskode": "ORD",
        "kunkandidatnr": true,
        "datoSistEndret": "2018-05-08T22:14+0200",
        "tid": {
            "start": "2009 HØST",
            "reell": "2009 HØST"
        },
        "kandidater": [
            "18586890006",
            "15597790349",
            "17517790125",
            "13586990122"
        ]
    },
]

Hent klager endret siden tidspunkt

Denne GET tjenesten henter ut en liste over klager som har blitt opprettet eller endret siden oppgitt tidspunkt.

  • institusjonsnr: Nummeret for institusjonen som du skal hente fra
  • siden: tidspunkt for sist sjekk. Format: DDMMYYYYhhmm
  • System: Koden for eksamenssystemet
  • dbinstnr: Institusjonsnummer til database dersom data ligger i en annen base enn instnr sin base. 
  • schema=true: Viser autogenerert json schema for retur

Denne tjenesten returnerer en JSON-liste.

System: Kode for datasystem brukt ifm. klagebehandling.

URL for test: https://fs-test.uio.no/eksamen/klager/<SYSTEM>?institusjonsnr=...&siden=...&
URL for prod: https://fsws.usit.no/eksamen/klager/<SYSTEM>?institusjonsnr=...&siden=...&

Java-eksempel

 

import org.apache.http.HttpHost;
import org.apache.http.HttpResponse;
import org.apache.http.auth.AuthScope;
import org.apache.http.auth.UsernamePasswordCredentials;
import org.apache.http.client.AuthCache;
import org.apache.http.client.CredentialsProvider;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.protocol.HttpClientContext;
import org.apache.http.impl.auth.BasicScheme;
import org.apache.http.impl.client.BasicAuthCache;
import org.apache.http.impl.client.BasicCredentialsProvider;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;

public class GetKlagerSiden {

    private static String theUrl = "https://fs-test.uio.no/eksamen/klager/INSPERA?institusjonsnr=185&siden=010120181000&dbinstnr=1234";


    public static void main(String[] args) throws Exception {
        HttpHost target = new HttpHost("fs-test.uio.no", 443, "https");
        CredentialsProvider credsProvider = new BasicCredentialsProvider();
        credsProvider.setCredentials(
            new AuthScope(target.getHostName(), target.getPort()),
            new UsernamePasswordCredentials("brukernavn", "passord"));
        CloseableHttpClient client = HttpClients.custom()
            .setDefaultCredentialsProvider(credsProvider).build();

        AuthCache authCache = new BasicAuthCache();
        BasicScheme basicAuth = new BasicScheme();
        authCache.put(target, basicAuth);

        HttpClientContext localContext = HttpClientContext.create();
        localContext.setAuthCache(authCache);

        HttpGet get = new HttpGet(theUrl);

        HttpResponse response = client.execute(get);
        response.getEntity().writeTo(System.out);
    }
}

Eksempel på svar

[
    {
        "vurdId": "MTg1fHxBTUgtTVVTMjAwMXx8MXx8U3x8MjAxN3x8MDY=",
        "klage": {
            "personlopenr": "4468",
            "kandidatnr": 60,
            "brukernavn": "18628790120",
            "klagestatus": "AKTIV",
            "sensurfrist": "2018-08-30T00:00+0100",
            "kommisjonsidOppr": "1",
            "kommisjonsidNy": "2"

        }
    },
    {
        "vurdId": "MTg1fHxBTUgtTVVTMjAwMXx8MXx8U3x8MjAxN3x8MDY=",
        "klage": {
            "personlopenr": "3910",
            "kandidatnr": 50,
            "brukernavn": "12518690319",
            "klagestatus": "BEHANDLET"
        }
    },
    {
        "vurdId": "MTg1fHxBTUgtTVVTMjAwMXx8MXx8U3x8MjAxOHx8MDY=",
        "klage": {
            "personlopenr": "3910",
            "kandidatnr": 70054,
            "brukernavn": "12518690319",
            "klagestatus": "TRUKKET"
        }
    },
    {
        "vurdId": "MTg1fHxBTUgtTVVTMjAwMXx8MXx8U3x8MjAxOHx8MDY=",
        "klage": {
            "personlopenr": "3910",
            "kandidatnr": 70054,
            "brukernavn": "12518690319",
            "klagestatus": "TRUKKET"
        }
    },
    {
        "vurdId": "MTg1fHxBTUgtTVVTMjAwMXx8MXx8U3x8MjAxOHx8MDY=",
        "klage": {
            "personlopenr": "3910",
            "kandidatnr": 70054,
            "brukernavn": "12518690319",
            "klagestatus": "TRUKKET"
        }
    }
]

Hent begrunnelsesforespørsler endret siden tidspunkt

Denne GET tjenesten henter ut en liste over begrunnelsesforespørsler som har blitt opprettet eller endret siden oppgitt tidspunkt.

  • institusjonsnr: Nummeret for institusjonen som du skal hente fra
  • siden: tidspunkt for sist sjekk. Format: DDMMYYYYhhmm
  • System: Koden for eksamenssystemet
  • dbinstnr: Institusjonsnummer til database dersom data ligger i en annen base enn instnr sin base. 
  • schema=true: Viser autogenerert json schema for retur

Denne tjenesten returnerer en JSON-liste.

System: Kode for datasystem brukt ifm. behandling av begrunnelser.

URL for test: https://fs-test.uio.no/eksamen/begrunnelse/<SYSTEM>?institusjonsnr=...&siden=...&
URL for prod: https://fsws.usit.no/eksamen/begrunnelse/<SYSTEM>?institusjonsnr=...&siden=...&

Java-eksempel

 

import org.apache.http.HttpHost;
import org.apache.http.HttpResponse;
import org.apache.http.auth.AuthScope;
import org.apache.http.auth.UsernamePasswordCredentials;
import org.apache.http.client.AuthCache;
import org.apache.http.client.CredentialsProvider;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.protocol.HttpClientContext;
import org.apache.http.impl.auth.BasicScheme;
import org.apache.http.impl.client.BasicAuthCache;
import org.apache.http.impl.client.BasicCredentialsProvider;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;

public class GetBegrunnelserSiden {

    private static String theUrl = "https://fs-test.uio.no/eksamen/begrunnelse/INSPERA?institusjonsnr=185&siden=010120181000&dbinstnr=1234";


    public static void main(String[] args) throws Exception {
        HttpHost target = new HttpHost("fs-test.uio.no", 443, "https");
        CredentialsProvider credsProvider = new BasicCredentialsProvider();
        credsProvider.setCredentials(
            new AuthScope(target.getHostName(), target.getPort()),
            new UsernamePasswordCredentials("brukernavn", "passord"));
        CloseableHttpClient client = HttpClients.custom()
            .setDefaultCredentialsProvider(credsProvider).build();

        AuthCache authCache = new BasicAuthCache();
        BasicScheme basicAuth = new BasicScheme();
        authCache.put(target, basicAuth);

        HttpClientContext localContext = HttpClientContext.create();
        localContext.setAuthCache(authCache);

        HttpGet get = new HttpGet(theUrl);

        HttpResponse response = client.execute(get);
        response.getEntity().writeTo(System.out);
    }
}

Eksempel på svar

[
    {
        "vurdId": "MTg1fHxBTUgtTVVTMjAwMXx8MXx8U3x8MjAxOHx8MDY=",
        "klage": {
            "personlopenr": "3910",
            "kandidatnr": 70054,
            "brukernavn": "12518690319",
            "klagestatus": "AKTIV"
        }
    }
]

Hent status på bachelor/master oppgave ifm overføring til Brage

Denne tjenesten returnerer status på bachelor/master oppgave (eksamen) ifm. overføring til Brage (Publisering). Dette er en GET-tjeneste som tar eksamenssystem/sensursystem og ID som en del av stien, path-parametre. Tjenesten tar følgende query-parametre:

  • fødselsnummer: Fødselsnummeret til studenten, 11 sifre
  • epost: Epost adressen til student
  • brukernavn: Brukernavnet til studenten
  • personlopenr: Personløpenummeret til studenten
  • kandidatnr: Kandidatnummeret til studenten
  • schema=true: Viser autogenerert json schema for retur

Denne tjenesten returnerer et JSON-objekt.

URL for test: https://fs-test.uio.no/eksamen/ferdigstatus/<ID>?fnr=<nr>&.....
URL for prod: https://fsws.usit.no/eksamen/ferdigstatus/<ID>?fnr=<nr>&.......

Alternativ er det mulig å oppgi institusjonsnr som en path parameter. Institusjonsnummeret vil da velge hvilken database som spørringen går mot. Eks:

URL for test: https://fs-test.uio.no/eksamen/ferdigstatus/<ID>/<DB-instnr>?fnr=<nr>&.....
URL for prod: https://fsws.usit.no/eksamen/ferdigstatus/<ID>/<DB-instnr>?fnr=<nr>&.......

 

 

Java-eksempel

import org.apache.http.HttpHost;
import org.apache.http.HttpResponse;
import org.apache.http.auth.AuthScope;
import org.apache.http.auth.UsernamePasswordCredentials;
import org.apache.http.client.AuthCache;
import org.apache.http.client.CredentialsProvider;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.protocol.HttpClientContext;
import org.apache.http.impl.auth.BasicScheme;
import org.apache.http.impl.client.BasicAuthCache;
import org.apache.http.impl.client.BasicCredentialsProvider;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;

public class GetEksamensinfo {

    private static String theUrl = "https://fs-test.uio.no/eksamen/ferdigstatus/INSPERA/MTg1fHxVVFZJVDE1MDB8fDF8fFN8fDIwMTd8fFbDhVI=?fnr=65655453333";


    public static void main(String[] args) throws Exception {
        HttpHost target = new HttpHost("fs-test.uio.no", 443, "https");
        CredentialsProvider credsProvider = new BasicCredentialsProvider();
        credsProvider.setCredentials(
            new AuthScope(target.getHostName(), target.getPort()),
            new UsernamePasswordCredentials("brukernavn", "passord"));
        CloseableHttpClient client = HttpClients.custom()
            .setDefaultCredentialsProvider(credsProvider).build();

        AuthCache authCache = new BasicAuthCache();
        BasicScheme basicAuth = new BasicScheme();
        authCache.put(target, basicAuth);

        HttpClientContext localContext = HttpClientContext.create();
        localContext.setAuthCache(authCache);

        HttpGet get = new HttpGet(theUrl);

        HttpResponse response = client.execute(get);
        response.getEntity().writeTo(System.out);
    }
}

Eksempel på svar

{
    "enhet": {
        "id": "MTg1fHxVVFZJVDE1MDB8fDF8fFN8fDIwMTd8fFbDhVI=",
        "institusjonsnr": 185,
        "stedkode": "185_18_00_00",
        "campuskode": "UIO",
        "emnekode": "UTVIT1500",
        "versjonskode": "1",
        "emnetittel": "Forskningsmetoder i utdanningsvitenskap",
        "vurdkombtittel": "Skriftlig eksamen",
        "vurdkombkode": "S",
        "eksamenssystem": "INSPERA",
        "start": "2017-06-08T09:00+0200",
        "domene": "uio.no",
        "varighetTimer": 3,
        "vurderingsform": "Individuell skriftlig prøve",
        "vurderingsordning": "S",
        "vurdstatuskode": "ORD",
        "kunkandidatnr": true,
        "datoSistEndret": "2018-05-04T21:48+0200",
        "tid": {
            "start": "2017 VÅR",
            "reell": "2017 VÅR"
        },
        "vekttype": "Studiepoeng",
        "poeng": "10"
    },
    "personid": {
        "personlopenr": 3535355,
        "brukernavn": "jensemann",
        "studentnr": 353535
    },
    "studieprogram": {
        "studieprogramkode": "UVB-PED",
        "studieprogram": "Pedagogikk"
    },
    "brageDCSubject": "Pedagogikk, null",
    "sted": {
        "institusjon": "Universitetet i Oslo",
        "fakultet": "Det utdanningsvitenskapelige fakultet",
        "stedakronym": "UV"
    },
    "status": {
        "kanOverfores": true,
        "erBestatt": "N"
    }
}

 

Av Kine V. Lund, Karl Jacob Maus, Kenneth Pettersen Lund
Publisert 30. apr. 2014 10:46 - Sist endret 29. sep. 2022 10:29