Bastjenester

Bastjenestene (Brukeradministrasjon). Eksisterer både som SOAP-tjenester og REST-tjenester. Her beskrives REST-tjenestene. BAS-tjenestene styrer hovedsaklig det som har med endring av generell persondata (som epost og brukernavn) samt fagpersoner.

For å kunne bruke BAS-tjenestene, må webservicebrukeren ha bas-rollen.

Disse tjenestene er gamle og inneholder en del legacy-kode som gjør at ikke alle parametre og URL'er er like samstemte. Vær obs og sjekk beskrivelse av tjeneste.

All XML som benyttes i disse tjenestene er beskrevet i et eget skjema, som man kan finne her.

Eksempler

Alle Java-eksempler benytter seg av Apache HTTP Client
Alle browser-eksempler benytter seg av Chrome Advanced Rest Client plugin

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

 

Tilgjengelige grensesnitt

Hent personid for person

Denne tjenesten kan hente ut personidinformasjon for en person gitt søk på en alternativ id. For eksempel kan man søke på brukernavn og få personløpenummer tilbake

Denne tjenesten tar følgende query parametre:

  • personlopenr: FS internt personløpenummer
  • brukernavn: Brukernavn, som oftest feide-brukernavn. Kan være med eller uten domene (domene blir uansett fjernet)
  • epost: Person sin epost
  • fnr: Fødselsnummer

Det bør holde med en ID som søkekriterium, men dersom man har både epost og brukernavn, kan man gjerne oppgi dette.

URL for test: https://fs-test.uio.no/fsrest/rest/bas/hent/personid?brukernavn=<brukernavn>
URL for prod: https://fsws.usit.no/fsrest/rest/bas/hent/personid?brukernavn=<brukernavn>

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 GetEmail {

    private static String theUrl = "https://fs-test.uio.no/fsrest/rest/bas/personid?brukernavn=richared";


    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("bruker", "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:

Man får enten et tomt objekt (hvis ingen funnet), feil (hvis mer enn en person er funnet) eller følgende data:

{
    "personlopenr": 100,
    "brukernavn": "richared",
    "studentnr": 200,
    "epost": "richared@uio.no",
    "epostPrivat": "richared@priv.no"
}

 

Hent epost for person

Denne tjenesten henter epost for en gitt person, baser på fødselsnummer. For de som snakker FS, så er det PERSON.EMAILADRESSE som hentes ut.

På grunn av en inkurie da tjenesten ble laget, så heter fødselsnummer her "nin" som da står for National Identifying Number. Tjenesten er en GET-tjeneste som benytter seg av Query-parameter

URL for testhttps://fs-test.uio.no/fsrest/rest/bas/hent/epost?nin=<fødselsnummer>
URL for prod: https://fsws.usit.no/fsrest/rest/bas/hent/epost?nin=<fødselsnummer>

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 GetEmail {

    private static String theUrl = "https://fs-test.uio.no/fsrest/rest/bas/hent/epost?nin=7566490042";


    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("bruker", "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: test.testesen@norge.no

 

Oppdater epost for person

Denne tjenesten oppdaterer epostadresse for en gitt person basert på fødselsnummer. For de som snakker FS, så er det PERSON.EMAILADRESSE som settes.

Legg merke til at her er plutselig URL blitt email og fødselsnummer nå er "fnr". Dessverre kan vi ikke endre på dette nå, da mange klienter vil brekke, så bare vær obs. Denne tjenesten er en POST-tjeneste som tar "fnr" og "email" som POST-parametre.

URL for test: https://fs-test.uio.no/fsrest/rest/bas/oppdater/email
URL for prod: https://fsws.usit.no/fsrest/rest/bas/oppdater/email

Java-eksempel

import java.util.ArrayList;
import java.util.List;

import org.apache.http.HttpHost;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
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.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
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;
import org.apache.http.message.BasicNameValuePair;

public class SetEmail {

    private static String theUrl = "https://fs-test.uio.no/fsrest/rest/bas/oppdater/email";


    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);

        List parameters = new ArrayList();
        parameters.add(new BasicNameValuePair("fnr", "7566490042"));
        parameters.add(new BasicNameValuePair("email", "test@norge.com"));

        post.setEntity(new UrlEncodedFormEntity(parameters));
        HttpResponse response = client.execute(post);
        response.getEntity().writeTo(System.out);
    }

}

Eksempel på svar: OK

 

Hent brukernavn for person

Denne tjenesten henter brukernavn for en gitt person, basert på fødselsnummer. For de som snakker FS, så er det PERSON.BRUKERNAVN som hentes ut.

På grunn av en inkurie da tjenesten ble laget, så heter fødselsnummer her "nin" som da står for National Identifying Number. Tjenesten er en GET-tjeneste som benytter seg av Query-parameter

URL for test: https://fs-test.uio.no/fsrest/rest/bas/hent/brukernavn?nin=<fødselsnummer>
URL for prod: https://fsws.usit.no/fsrest/rest/bas/hent/brukernavn?nin=<fødselsnummer>

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 GetUsername {

    private static String theUrl = "https://fs-test.uio.no/fsrest/rest/bas/hent/brukernavn?nin=7566490042";


    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: brukernavn

 

Oppdater brukernavn for person

Denne tjenesten oppdaterer brukernavn for en gitt person basert på fødselsnummer. For de som snakker FS, så er det PERSON.BRUKERNAVNsom settes.

Legg merke til at her er fødselsnummer nå "fnr". Dessverre kan vi ikke endre på dette nå, da mange klienter vil brekke, så bare vær obs. Denne tjenesten er en POST-tjeneste som tar "fnr" og "brukernavn" som POST-parametre.

URL for test: https://fs-test.uio.no/fsrest/rest/bas/oppdater/brukernavn
URL for prod: https://fsws.usit.no/fsrest/rest/bas/oppdater/brukernavn

Java-eksempel

import java.util.ArrayList;
import java.util.List;

import org.apache.http.HttpHost;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
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.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
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;
import org.apache.http.message.BasicNameValuePair;

public class SetUsername {

    private static String theUrl = "https://fs-test.uio.no/fsrest/rest/bas/oppdater/brukernavn";


    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);

        List parameters = new ArrayList();
        parameters.add(new BasicNameValuePair("fnr", "7566490042"));
        parameters.add(new BasicNameValuePair("brukernavn", "testesen"));

        post.setEntity(new UrlEncodedFormEntity(parameters));
        HttpResponse response = client.execute(post);
        response.getEntity().writeTo(System.out);
    }

}

Eksempel på svar: OK

Hent bilde for person

Denne tjenesten returnerer et bilde for en person for et gitt personnummer. For de som snakker FS, så er det bilde fra tabellen PERSONBILDE som hentes ut.

På grunn av en inkurie da tjenesten ble laget, så heter fødselsnummer her "nin" som da står for National Identifying Number. Tjenesten er en GET-tjeneste som benytter seg av Query-parameter. Tjenesten returnerer bildet som en Base64-kodet streng, som klienten da må dekode om til bilde-bytes.

URL for test: https://fs-test.uio.no/fsrest/rest/bas/hent/bilde?nin=<fødselsnummer>
URL for prod: https://fsws.usit.no/fsrest/rest/bas/hent/bilde?nin=<fødselsnummer>

Java-eksempel

import java.io.ByteArrayOutputStream;
import java.nio.file.Files;
import java.nio.file.Paths;

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 GetImage {

    private static String theUrl = "https://fs-test.uio.no/fsrest/rest/bas/hent/bilde?nin=7566490042";


    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);
        ByteArrayOutputStream bos = new ByteArrayOutputStream();
        response.getEntity().writeTo(bos);
        String base64Image = new String(bos.toByteArray());
        byte[] imageBytes = Base64Coder.decode(base64Image);
        Files.write(Paths.get("C:/temp/myimage.jpg"), imageBytes);
    }

}

Eksempel på svar: A74K.............Q/+HJK== 

Oppdater bilde for person

Denne tjenesten setter bilde for en person, basert på fødselsnummer. Det er tabellen PERSONBILDE i FS som oppdateres.

Denne tjenesten tar følgende parametre i form-data:
fnr - Fødselsnummer
type - Type bilde (jpg/png...)
bilde - Bildet

URL for test: https://fs-test.uio.no/fsrest/rest/bas/oppdater/bilde/form
URL for prod: https://fsws.usit.no/fsrest/rest/bas/oppdater/bilde/form

Java-eksempel

import java.io.File;

import org.apache.http.HttpEntity;
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.HttpPost;
import org.apache.http.client.protocol.HttpClientContext;
import org.apache.http.entity.ContentType;
import org.apache.http.entity.mime.HttpMultipartMode;
import org.apache.http.entity.mime.MultipartEntityBuilder;
import org.apache.http.entity.mime.content.FileBody;
import org.apache.http.entity.mime.content.StringBody;
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 SetImage {

    private static String theUrl = "https://fs-test.uio.no/fsrest/rest/bas/oppdater/bilde/form";


    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();

        File file = new File("C:/temp/richard.jpg");

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

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

        HttpPost post = new HttpPost(theUrl);
        FileBody fileBody = new FileBody(file);
        StringBody stringBody1 = new StringBody("7566490042", ContentType.MULTIPART_FORM_DATA);
        StringBody stringBody2 = new StringBody("jpg", ContentType.MULTIPART_FORM_DATA);

        MultipartEntityBuilder builder = MultipartEntityBuilder.create();
        builder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);
        builder.addPart("fnr", stringBody1);
        builder.addPart("type", stringBody2);
        builder.addPart("bilde", fileBody);
        HttpEntity entity = builder.build();

        post.setEntity(entity);
        HttpResponse response = client.execute(post);
        System.out.println(response.toString());
    }
}

Eksempel på svar: OK

Slett bilde for Student

Denne tjenesten sletter bilde for student. Det er en POST som tar ett parameter:

  • nin- Fødselsnummer

URL for test: https://fs-test.uio.no/fsrest/rest/bas/slett/bilde
URL for prod: https://fsws.usit.no/fsrest/rest/bas/slett/bilde

Java-eksempel

import java.util.ArrayList;
import java.util.List;

import org.apache.http.HttpHost;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
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.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
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;
import org.apache.http.message.BasicNameValuePair;

public class SlettBilde {

    private static String theUrl = "https://fs-test.uio.no/fsrest/rest/bas/slett/bilde";


    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);

        List<namevaluepair> parameters = new ArrayList<namevaluepair>();
        parameters.add(new BasicNameValuePair("nin", "23568590015"));

        post.setEntity(new UrlEncodedFormEntity(parameters));
        HttpResponse response = client.execute(post);
        response.getEntity().writeTo(System.out);
    }

}

Eksempel på svar: Ikke noe svar annet enn HTTP-kode 200 OK, hvis ting går bra.

Hent kull

Denne tjenesten henter alle aktive kull. Dette er en GET-tjeneste som ikke tar noen parametre.

URL for test: https://fs-test.uio.no/fsrest/rest/bas/hent/kull
URL for prod: https://fsws.usit.no/fsrest/rest/bas/hent/kull

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 GetKull {

    private static String theUrl = "https://fs-test.uio.no/fsrest/rest/bas/hent/kull";


    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:

<aktiveKull xmlns="http://fsws.usit.no/schemas/basdata">
	<kull>
		<id>DRPOLIT_2003_VÅR</id>
		<navn lang="no">Studiekull 2003-VÅR</navn>
	</kull>
	<kull>
		<id>HISTFIL_1996_HØST</id>
		<navn lang="no">Studiekull 1996-HØST</navn>
	</kull>
</aktiveKull>

Hent rom

Denne tjenesten henter alle rom. Dette er en GET-tjeneste som ikke tar noen parametre.

URL for test: https://fs-test.uio.no/fsrest/rest/bas/hent/rom
URL for prod: https://fsws.usit.no/fsrest/rest/bas/hent/rom

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 GetKull {

    private static String theUrl = "https://fs-test.uio.no/fsrest/rest/bas/hent/rom";


    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:

<romliste>
	<rom>
		<bygningskode>B13</bygningskode>
		<romkode>B131</romkode>
		<romnavn>Rom B131</romnavn>
		<etasje/>
		<bygningsnavn>Bygning nr 13</bygningsnavn>
		<romtypenavn>Auditorium</romtypenavn>
		<tall_kapasitet_und>4</tall_kapasitet_und>
		<tall_kapasitet_eks>4</tall_kapasitet_eks>
	</rom>
	<rom>
		<bygningskode>B13</bygningskode>
		<romkode>B132</romkode>
		<romnavn>Rom B132</romnavn>
		<etasje/>
		<bygningsnavn>Bygning nr 13</bygningsnavn>
		<romtypenavn>Auditorium</romtypenavn>
		<tall_kapasitet_und>4</tall_kapasitet_und>
		<tall_kapasitet_eks>4</tall_kapasitet_eks>
	</rom>
</romliste>

Hent sted

Denne tjenesten henter steder. Dette er en GET-tjeneste som tar 4 query-parametre:

institusjonsnr - Nummeret på institusjonen man skal hente ut for (obligatorisk)
faknr - Fakultetsnummer (valgfri)
instituttnr - Instituttnummer (valgfri)
gruppenr - Gruppenummer (valgfri)

Derom man ikke angir noe på en query-parameter, så anser man dette for et wildcard, så dersom kun institusjonsnummer og fakultetsnummer er satt, får man alle steder under fakultetet.

URL for test: https://fs-test.uio.no/fsrest/rest/bas/hent/sted
URL for prod: https://fsws.usit.no/fsrest/rest/bas/hent/sted

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 GetKull {

    private static String theUrl = "https://fs-test.uio.no/fsrest/rest/bas/hent/sted?institusjonsnr=185&faknr=14&instituttnr=1";


    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:

<steder xmlns="http://fsws.usit.no/schemas/basdata">
	<sted kode="185_0_0_0">
		<institusjonsnr>185</institusjonsnr>
		<faknr>0</faknr>
		<instituttnr>0</instituttnr>
		<gruppenr>0</gruppenr>
		<navn lang="nb">Universitetet i Oslo</navn>
		<navn lang="en">University of Oslo</navn>
		<stedakronym>UIO</stedakronym>
	</sted>
	<sted kode="185_14_0_0">
		<institusjonsnr>185</institusjonsnr>
		<faknr>14</faknr>
		<instituttnr>0</instituttnr>
		<gruppenr>0</gruppenr>
		<navn lang="nb">Det historisk-filosofiske fakultet, UiO</navn>
		<navn lang="nn">Det historisk-filosofiske fakultet, UIO</navn>
		<navn lang="en">The Faculty of Arts</navn>
		<stedakronym>HF-fak</stedakronym>
	</sted>
	<sted kode="185_14_1_0">
		<institusjonsnr>185</institusjonsnr>
		<faknr>14</faknr>
		<instituttnr>1</instituttnr>
		<gruppenr>0</gruppenr>
		<navn lang="nb">Institutt for asiatiske og afrikanske studier</navn>
		<stedakronym>AAS</stedakronym>
	</sted>
</steder>

Hent fagpersoner

Denne tjenesten henter alle aktive fagpersoner. Dette er en GET-tjeneste som ikke tar noen parametre.

URL for test: https://fs-test.uio.no/fsrest/rest/bas/hent/fagpersoner
URL for prod: https://fsws.usit.no/fsrest/rest/bas/hent/fagpersoner

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 GetKull {

    private static String theUrl = "https://fs-test.uio.no/fsrest/rest/bas/hent/fagpersoner";


    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:

<fagpersoner xmlns="http://fsws.usit.no/schemas/basdata">
	<fagperson nin="24537190244" fsLopenr="944" kjonn="k" morsmal="en" malform="en" aktiv="true" permisjon="false" hjemland="no" harBilde="false" tillatFLR="true">
		<fornavn>Lene Sofie</fornavn>
		<etternavn>Bergan</etternavn>
		<forkortetNavn>L.Bergan</forkortetNavn>
		<telefon type="mobil">
			<nr>41897231</nr>
		</telefon>
		<stedref>185_33_20_0</stedref>
		<adresse type="hjem">
			<gate>Bjørnsonsgate 1</gate>
			<sted>0001 OSLO</sted>
			<postnr>0001</postnr>
		</adresse>
		<kommune>
			<fylkenr>3</fylkenr>
			<kommunenr>1</kommunenr>
		</kommune>
		<rolle institusjonsnr="185">
			<kode>FAGL</kode>
			<startDato>2013-02-01</startDato>
			<sluttDato>2013-03-01</sluttDato>
			<undaktivitet>185_FSPRAKSIS20_1_2013_VÅR_1_1</undaktivitet>
		</rolle>
		<rolle institusjonsnr="185">
			<kode>FAGL</kode>
			<startDato>2014-01-31</startDato>
			<sluttDato>2014-02-28</sluttDato>
			<undaktivitet>185_FSPRAKSIS20_1_2014_VÅR_1_1</undaktivitet>
		</rolle>
		<rolle institusjonsnr="185">
			<kode>FAGL</kode>
			<startDato>2015-01-30</startDato>
			<sluttDato>2015-02-27</sluttDato>
			<undaktivitet>185_FSPRAKSIS20_1_2015_VÅR_1_1</undaktivitet>
		</rolle>
	</fagperson>
</fagpersoner>

Hent fagperson

Denne tjenesten henter en fagperson basert på fødselsnummer.

På grunn av en inkurie da tjenesten ble laget, så heter fødselsnummer her "nin" som da står for National Identifying Number. Tjenesten er en GET-tjeneste som benytter seg av Query-parameter

URL for test: https://fs-test.uio.no/fsrest/rest/bas/hent/fagperson?nin=<fødselsnummer>
URL for prod: https://fsws.usit.no/fsrest/rest/bas/hent/fagperson?nin=<fødselsnummer>

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 GetKull {

    private static String theUrl = "https://fs-test.uio.no/fsrest/rest/bas/hent/fagperson?nin=24537190244";


    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:

<fagperson nin="24537190244" fsLopenr="944" kjonn="k" morsmal="en" malform="en" aktiv="true" permisjon="false" hjemland="no" harBilde="false" tillatFLR="true" xmlns="http://fsws.usit.no/schemas/basdata">
	<fornavn>Lene Sofie</fornavn>
	<etternavn>Bergan</etternavn>
	<forkortetNavn>L.Bergan</forkortetNavn>
	<telefon type="mobil">
		<nr>41897231</nr>
	</telefon>
	<stedref>185_33_20_0</stedref>
	<adresse type="hjem">
		<gate>Bjørnsonsgate 1</gate>
		<sted>0001 OSLO</sted>
		<postnr>0001</postnr>
	</adresse>
	<kommune>
		<fylkenr>3</fylkenr>
		<kommunenr>1</kommunenr>
	</kommune>
	<rolle institusjonsnr="185">
		<kode>FAGL</kode>
		<startDato>2013-02-01</startDato>
		<sluttDato>2013-03-01</sluttDato>
		<undaktivitet>185_FSPRAKSIS20_1_2013_VÅR_1_1</undaktivitet>
	</rolle>
	<rolle institusjonsnr="185">
		<kode>FAGL</kode>
		<startDato>2014-01-31</startDato>
		<sluttDato>2014-02-28</sluttDato>
		<undaktivitet>185_FSPRAKSIS20_1_2014_VÅR_1_1</undaktivitet>
	</rolle>
	<rolle institusjonsnr="185">
		<kode>FAGL</kode>
		<startDato>2015-01-30</startDato>
		<sluttDato>2015-02-27</sluttDato>
		<undaktivitet>185_FSPRAKSIS20_1_2015_VÅR_1_1</undaktivitet>
	</rolle>
</fagperson>

Hent fagpersoner JSON

Denne tjenesten henter alle aktive fagpersoner og returnerer i JSON format. Dette er en GET-tjeneste som ikke tar noen parametre. Forskjellen på denne og den andre tjenesten er at denne returnerer JSON-format, i tillegg returneres undervisning for fagpersonen.

URL for test: https://fs-test.uio.no/fsrest/rest/bas/data/fagpersoner
URL for prod: https://fsws.usit.no/fsrest/rest/bas/data/fagpersoner

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 GetFagpersonerJson {

    private static String theUrl = "https://fs-test.uio.no/fsrest/rest/bas/data/fagpersoner";


    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:

[
  {
    "fagperson": {
      "aktiv": true,
      "permisjon": true,
      "telefonArbeid": "",
      "romkode": "185_0_0_0",
      "adresseArbeid": {
        "co": "Arbeidsstedet 2c",
        "sted": "0112 OSLO",
        "postnr": 112
      },
      "rolle": [],
      "undervisning": [],
      "nin": 9000476168,
      "fsLopenr": 923,
      "kjonn": "K",
      "fornavn": "Lovise",
      "etternavn": "Løseth",
      "forkortetNavn": "TESTING",
      "morsmal": "nb",
      "malform": "nb",
      "hjemland": "no",
      "harbilde": false,
      "tillatNETTPUBL": false,
      "tillatFLR": false,
      "tillatLMS": false,
      "dead": false,
      "epostArbeid": "knutlov+fagper@usit.uio.no",
      "telefonHjem": "",
      "mobil": "",
      "adresseHjemme": {
        "gate": "Møllergata 18",
        "sted": "0123 OSLO",
        "postnr": 123,
        "land": "OSLO"
      },
      "fylkesnummer": 3,
      "kommunenr": 1
    }
  }
]

Oppdater fagperson

Denne tjenesten oppdaterer en fagperson gitt en fagperson-xml. Dersom personen finnes, så blir felter oppdatert. Dersom personen ikke finnes, så blir den oppdatert. Tjenesten er en POST-tjeneste som tar en fagpersonXML som POST-parameter.

Beskrivelsen av formatet finnes på XML-skjema linket til tidligere, eller man kan se på eksemplet under.

Noen særegenheter å være obs på:
Det er en del småting man må være obs på her. Denne tjenesten er dessverre nedprioritert for fiksing, så her kommer hintene for å få denne til å virke.

  • Parameter "kjonn" i fagperson må være satt, selv om man egentlig ikke kan endre kjønn uten å endre personnummer
  • Parameter "fsLopenr" må være satt, selv om dette ikke har noen effekt
  • Det er umulig å slette verdier i dag. Verdien settes enten til ny verdi, eller settes til gammelverdi dersom ingenting sendes inn

URL for test: https://fs-test.uio.no/fsrest/rest/bas/oppdater/fagperson
URL for prod: https://fsws.usit.no/fsrest/rest/bas/oppdater/fagperson

Java-eksempel

import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.List;

import org.apache.http.HttpHost;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
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.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
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;
import org.apache.http.message.BasicNameValuePair;

public class SetFagperson {

    private static String theUrl = "https://fs-test.uio.no/fsrest/rest/bas/oppdater/fagperson";


    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);

        List parameters = new ArrayList();
        parameters.add(new BasicNameValuePair("fagpersonXML", getStringFromXml()));

        post.setEntity(new UrlEncodedFormEntity(parameters));
        HttpResponse response = client.execute(post);
        response.getEntity().writeTo(System.out);
    }


    private static String getStringFromXml() throws Exception {
        return new String(Files.readAllBytes(Paths.get("C:/temp/fagperson.xml")));
    }
}

XML-eksempel for fagperson

<fagperson xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://fsws.usit.no/schemas/basdata" xsi:schemaLocation="http://fsws.usit.no/schemas/basdata http://fsws.usit.no/schemas/basdata/basdata-1.7.xsd" nin="26597290364" fsLopenr="945" aktiv="true" kjonn="m" dead="false" malform="BOKMAL" hjemland="no" bankkontonr="30501025999">
	<fornavn>Toralf</fornavn>
	<etternavn>Bergh</etternavn>
	<forkortetNavn>To.Berg</forkortetNavn>
	<epost type="hjem">epost@mail.no</epost>
	<epost type="arbeid">testrr@hist.no</epost>
	<telefon type="mobil">
		<nr>41897231</nr>
	</telefon>
	<telefon type="hjem">
		<nr>89545332</nr>
	</telefon>
	<adresse type="hjem">
		<gate>Bjørnsonsgate 1</gate>
		<sted>0001 OSLO</sted>
		<postnr>0001</postnr>
	</adresse>
	<adresse type="arbeid">
		<co>Høgskolen i Sør-Trøndelag</co>
		<gate>Avdeling for lærer- og tolkeutdanning</gate>
		<sted>7004 TRONDHEIM</sted>
		<postnr>7004</postnr>
	</adresse>
	<kommune>
		<fylkenr>16</fylkenr>
		<kommunenr>1</kommunenr>
	</kommune>
</fagperson>

Oppdater bibsys lånetaker ID for Student

Denne tjenesten oppdatere Bibsys lånetaker ID for en student for et gitt fødselsnummer. I FS så er det STUDENT.BIBSYSLANETAKERID som oppdateres. Dette er en POST-tjeneste som tar to parametre:

  • fnr - Fødselsnummer
  • lanetakerid - Lånetaker-ID må være 10 tegn

URL for test: https://fs-test.uio.no/fsrest/rest/bas/oppdater/lanetakerid
URL for prod: https://fsws.usit.no/fsrest/rest/bas/oppdater/lanetakerid

Java-eksempel

import java.util.ArrayList;
import java.util.List;

import org.apache.http.HttpHost;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
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.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
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;
import org.apache.http.message.BasicNameValuePair;

public class SetLanetakerId {

    private static String theUrl = "https://fs-test.uio.no/fsrest/rest/bas/oppdater/lanetakerid";


    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);

        List<namevaluepair> parameters = new ArrayList<namevaluepair>();
        parameters.add(new BasicNameValuePair("fnr", "23568590015"));
        parameters.add(new BasicNameValuePair("lanetakerid", "NLH0032120"));

        post.setEntity(new UrlEncodedFormEntity(parameters));
        HttpResponse response = client.execute(post);
        response.getEntity().writeTo(System.out);
    }

}

Eksempel på svar: Ikke noe svar annet enn HTTP-kode 200 OK, hvis ting går bra.

Oppdater semesteravgift betalt for Student

Denne tjenesten oppdatere om student har betalt semesteravgift. I FS så oppdateres REGISTERKORT.STATUS_BET_OK. Det er viktig at registerkortet eksisterer for at denne kan kalles. Dette er post tjeneste som tar følgende parametre:

  • fnr - Fødselsnummer for student
  • studentnr - Studentnummeret til studenten
  • termin - Termin som det er betalt for (VÅR / HØST)
  • arstall - Årstallet som det er betalt for
  • statusbetalt - Status for om avgift er betalt (J / N)

URL for test: https://fs-test.uio.no/fsrest/rest/bas/oppdater/semesteravgift
URL for prod: https://fsws.usit.no/fsrest/rest/bas/oppdater/semesteravgift

Java-eksempel

import java.util.ArrayList;
import java.util.List;

import org.apache.http.HttpHost;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
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.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
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;
import org.apache.http.message.BasicNameValuePair;

public class SetSemesteravgift {

    private static String theUrl = "https://fs-test.uio.no/fsrest/rest/bas/oppdater/semesteravgift";


    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);

        List parameters = new ArrayList();
        parameters.add(new BasicNameValuePair("fnr", "5537690064"));
        parameters.add(new BasicNameValuePair("studentnr", "277"));
        parameters.add(new BasicNameValuePair("termin", "VÅR"));
        parameters.add(new BasicNameValuePair("arstall", "2014"));
        parameters.add(new BasicNameValuePair("statusbetalt", "N"));

        post.setEntity(new UrlEncodedFormEntity(parameters));
        HttpResponse response = client.execute(post);
        response.getEntity().writeTo(System.out);
    }

}

Eksempel på svar: Ikke noe svar annet enn HTTP-kode 200 OK, hvis ting går bra, eller feilmelding hvis noe går feil.

Oppdater bilde for Studenter

Denne tjenesten tar en liste med bilder og oppdaterer for studenter. Dette er en POST-tjeneste som tar en JSON-liste. Eksempel på JSON vises lenger ned.

URL for test: https://fs-test.uio.no/fsrest/rest/bas/oppdater/bilde
URL for prod: https://fsws.usit.no/fsrest/rest/bas/oppdater/bilde

Java-eksempel

import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.List;

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.HttpPost;
import org.apache.http.client.protocol.HttpClientContext;
import org.apache.http.entity.StringEntity;
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;

import com.google.gson.Gson;

public class SetImageJson {

    private static String theUrl = "https://fs-test.uio.no/fsrest/rest/bas/oppdater/bilde";


    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);
        String entity = lagBildeStream();
        System.out.println(entity);
        post.setEntity(new StringEntity(entity));
        HttpResponse response = client.execute(post);
        response.getEntity().writeTo(System.out);
    }


    private static String lagBildeStream() throws Exception {
        BildeData bd1 = new BildeData();
        bd1.fodselsdato = 15144L;
        bd1.personnr = 90364L;
        bd1.filExtension = "jpg";
        bd1.bildeBase64 = bildeString("C:/temp/test.jpg");

        BildeData bd2 = new BildeData();
        bd2.fodselsdato = 15503L;
        bd2.personnr = 90139L;
        bd2.filExtension = "jpg";
        bd2.bildeBase64 = bildeString("C:/temp/myimage.jpg");

        BildeListe bl = new BildeListe();
        bl.institusjonsnr = 1234;

        List<Bildedata> liste = new ArrayList<Bildedata>();
        liste.add(bd1);
        liste.add(bd2);
        bl.dataliste = liste;

        Gson gson = new Gson();

        return gson.toJson(bl);
    }


    private static String bildeString(String path) throws Exception {
        return new String(Base64Coder.encode(Files.readAllBytes(Paths.get(path))));
    }

    private static class BildeListe {
        private Integer institusjonsnr;
        private List<Bildedata> dataliste;
    }

    private static class BildeData {
        private Long personnr;
        private Long fodselsdato;
        private String filExtension;
        private String bildeBase64;
    }
}

JSON-eksempel

{
	"institusjonsnr":1234,
	"dataliste":[
		{
			"personnr":90364,
			"fodselsdato":15144,
			"filExtension":"jpg",
			"bildeBase64":"/9j/4AAQSkZJRgABAgAAAQAB...0UUAf//Z"
		},
		{
			"personnr":90139,
			"fodselsdato":15503,
			"filExtension":"jpg",
			"bildeBase64":"/9j/4AAQSkZJRgABAQEAYABg...Hir4DTWX"
		}
	]
}

Eksempel på svar: Ikke noe svar annet enn HTTP-kode 200 OK, hvis ting går bra, eller feilmelding hvis noe går feil.

 

Oppdater studentkort for Studenter

Denne tjenesten tar en liste med studentkort og oppdaterer/oppretter for studenter. Dette er en POST-tjeneste som tar en JSON-liste. Eksempel på JSON vises lenger ned.

URL for test: https://fs-test.uio.no/fsrest/rest/bas/oppdater/studentkort
URL for prod: https://fsws.usit.no/fsrest/rest/bas/oppdater/studentkort

Java-eksempel

import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

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.HttpPost;
import org.apache.http.client.protocol.HttpClientContext;
import org.apache.http.entity.StringEntity;
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;

import com.google.gson.Gson;

public class SetStudentkort {

    private static String theUrl = "https://fs-test.uio.no/fsrest/rest/bas/oppdater/studentkort";


    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);
        String entity = lagBildeStream();
        System.out.println(entity);
        post.setEntity(new StringEntity(entity));
        HttpResponse response = client.execute(post);
        response.getEntity().writeTo(System.out);
    }


    private static String lagBildeStream() throws Exception {
        StudentkortData bd1 = new StudentkortData();
        bd1.fodselsdato = 15144L;
        bd1.personnr = 90364L;
        bd1.kortSkalUtga = "N";
        bd1.studentkortnr = "793425";
        bd1.datoUtstedelseMillis = new Date(System.currentTimeMillis() - 10000).getTime();
        bd1.datoUtgarMillis = new Date(System.currentTimeMillis() + 10000).getTime();
        bd1.studentkortstatkode = "GYLDIG";
        bd1.institusjonsnrTilhorighet = 185L;
        bd1.faknrTilhorighet = 0L;
        bd1.filExtension = "jpg";
        bd1.bildeBase64 = bildeString("C:/temp/test.jpg");

        StudentkortData bd2 = new StudentkortData();
        bd2.fodselsdato = 15503L;
        bd2.personnr = 90139L;
        bd2.kortSkalUtga = "N";
        bd2.studentkortnr = "474567";
        bd2.datoUtstedelseMillis = new Date(System.currentTimeMillis() - 15000).getTime();
        bd2.datoUtgarMillis = new Date(System.currentTimeMillis() + 15000).getTime();
        bd2.studentkortstatkode = "GYLDIG";
        bd2.institusjonsnrTilhorighet = 185L;
        bd2.faknrTilhorighet = 0L;
        bd2.filExtension = "jpg";
        bd2.bildeBase64 = bildeString("C:/temp/myimage.jpg");

        BildeListe bl = new BildeListe();
        bl.institusjonsnr = 1234;

        List<StudentkortData> liste = new ArrayList<StudentkortData>();
        liste.add(bd1);
        liste.add(bd2);
        bl.dataliste = liste;

        Gson gson = new Gson();

        return gson.toJson(bl);
    }


    private static String bildeString(String path) throws Exception {
        return new String(Base64Coder.encode(Files.readAllBytes(Paths.get(path))));
    }

    private static class BildeListe {
        private Integer institusjonsnr;
        private List<StudentkortData> dataliste;
    }

    private static class StudentkortData {
        private String kortSkalUtga;
        private String studentkortnr;
        private Long studentnr;
        private Long personnr;
        private Long fodselsdato;
        private Long datoUtstedelseMillis;
        private Long datoUtgarMillis;
        private String studentkortstatkode;
        private Long institusjonsnrTilhorighet;
        private Long faknrTilhorighet;
        private String filExtension;
        private String bildeBase64;
    }
}

JSON-eksempel

{
	"institusjonsnr":1234,
	"dataliste":[
		{
			"kortSkalUtga":"N",
			"studentkortnr":"793425",
			"personnr":90364,
			"fodselsdato":15144,
			"datoUtstedelseMillis":1435142569875,
			"datoUtgarMillis":1435142589875,
			"studentkortstatkode":"GYLDIG",
			"institusjonsnrTilhorighet":185,
			"faknrTilhorighet":0,
			"filExtension":"jpg",
			"bildeBase64":"/9j/4AAQSkZJRgABAgAA....r90UUAf//Z"
		},
		{
			"kortSkalUtga":"N",
			"studentkortnr":"474567",
			"personnr":90139,
			"fodselsdato":15503,
			"datoUtstedelseMillis":1435142564879,
			"datoUtgarMillis":1435142594879,
			"studentkortstatkode":"GYLDIG",
			"institusjonsnrTilhorighet":185,
			"faknrTilhorighet":0,
			"filExtension":"jpg",
			"bildeBase64":"/9j/4AAQSkZJRgABAQEAYABg...r4DTWX"
		}
	]
}

Hent basdata

Denne tjenesten henter basdata. Formatet på basdataene er gitt i xml som er spesifisert over. Dette er en GET-tjeneste som tar følgende parameter:

  • eksportType - Type eksport, enten FULL (alle data) eller ENDRING (hent data siden siste henting
  • registrerKjoring - Om man skal registrere kjøring (J / N), denne må være J dersom man skal senere kjøre med ENDRING
  • medFagpersoner - Om fagpersoner skal være med i eksporten (J / N)
  • medHistorikk - Om historikk skal være med (J / N)
  • eksportInaktive - Evt. kommaseparert liste med inaktive studentstatuser som allikevel skal eksporteres (f.eks. UTESTENGT,SLUTTET)

URL for test: https://fs-test.uio.no/fsrest/rest/bas/hent/basdata
URL for prod: https://fsws.usit.no/fsrest/rest/bas/hent/basdata

Java-eksempel

import java.io.File;
import java.io.FileOutputStream;

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 GetBasdata {

    private static String theUrl = "https://fs-test.uio.no/fsrest/rest/bas/hent/basdata?eksportType=FULL®istrerKjoring=N&medFagpersoner=J&medHistorikk=N";


    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);
        FileOutputStream fos = new FileOutputStream(new File("C:/temp/tester.xml"));
        response.getEntity().writeTo(fos);
        fos.close();
    }
}

Eksempel på svar: Basdata

Hent basdata med dato

Denne tjenesten henter basdata for endringer etter en gitt dato gitt dato. Dette er en GET-tjeneste med følgende parameter:

  • endringerSiden - Dato for endringer på format yyyy-MM-dd
  • medFagpersoner - Om fagpersoner skal være med i eksporten (J / N)
  • medHistorikk - Om historikk skal være med (J / N)
  • eksportInaktive - Evt. kommaseparert liste med inaktive studentstatuser som allikevel skal eksporteres (f.eks. UTESTENGT,SLUTTET)

URL for test: https://fs-test.uio.no/fsrest/rest/bas/hent/baseksport
URL for prod: https://fsws.usit.no/fsrest/rest/bas/hent/baseksport

Java-eksempel

import java.io.File;
import java.io.FileOutputStream;

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 GetBasdataDato {

    private static String theUrl = "https://fs-test.uio.no/fsrest/rest/bas/hent/baseksport?endringerSiden=2014-01-01&medFagpersoner=J&medHistorikk=N";


    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);
        FileOutputStream fos = new FileOutputStream(new File("C:/temp/tester.xml"));
        response.getEntity().writeTo(fos);
        fos.close();
    }
}

Eksempel på svar: Basdata

Publisert 28. mars 2014 10:22 - Sist endret 17. feb. 2021 12:52