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
- Hent brisdata for SiO med endringer
- Hent alle brisdata for SiA
- Hent brisdata med endringer siden for SiA
- Hent brisdata opprettet etter for SiA
- Hent brisdata for en student for SiA
Hent brisdata med endringer for SiO
Overgang fra SOAP til REST for denne tjenesten:
- Den eksisterende SOAP tjenesten har to operasjoner getBrisData og getBrisDataAsAttachment. Disse er i REST slått sammen til et endpoint. Det trengs altså kun å gjøre kall mot en URL. Se under for beskrivels av URL.
- Se Java eksempel under for klientkode og URL eksempel hvor det bes om XML Respons som et vedlegg lagret til fil.
- Det er autentisering på denne tjenesten. Brukernavn og passord må brukes. Se Java eksempel under på hvordan dette kan gjøres. Brukernavn og passord må være gitt og lagt inn i FS av Unit. I tillegg må brukeren ha riktig rettighet for å lese ut data. I dette tilfellet trengs rollen : "bris-roller".
Denne tjenesten henter brisdata for SiO. Dette er en GET-tjeneste som tar Query-parametre og returnerer XML. XML kan også returneres som en nedlastbar fil.
URL for test: https://fs-test.uio.no/fsrest/rest//bris/samskipnad/studenter/endringer?siden=<dato>&somVedlegg=<J>
URL for prod: https://fsws.usit.no/fsrest/rest//bris/samskipnad/studenter/endringer?siden=<dato>&somVedlegg=<J>
- siden - Henter ut brisdata med endringer siden dato. Dato er på formatet "yyyy-MM-dd'T'HH:mm:ss". Dersom datoparameteren ikke brukes, så gjøres vanlig uttrekk.
- somVedlegg - Settes lik "J" dersom for retur som en fil.
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 GetBrisdata { private static String theUrl = "https://fs-test.uio.no//fsrest/rest/bris/samskipnad/studenter/endringer?siden=2018-02-02T08:30:00&somVedlegg=J 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
<?xml version="1.0" encoding="UTF-8"?> <studentdata xsi:noNamespaceSchemaLocation="http://fsws.usit.no/schemas/bris/bris-1.0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <beskrivelse> <kilde>185</kilde> <dato>2010-09-28</dato> <studiear>2010-2011</studiear> </beskrivelse> <studenter> <student> <fnr>13059212345</fnr> <navn> <etternavn>Ola</etternavn> <fornavn>Hansen</fornavn> </navn> <semesterregistrering> <sist_bet_semavgift>2010-08-23</sist_bet_semavgift> <fritak_semavgift>J</fritak_semavgift> <kortid>String</kortid> </semesterregistrering> </student> <student> ... </student> ... </studenter> </studentdata>
Hent alle brisdata for SiA
Denne tjenesten henter alle brisdata for SiA. Dette er en GET-tjeneste som ikke tar noen parametre og returnerer XML.
URL for test: https://fs-test.uio.no/fsrest/rest/bris/sia/alle
URL for prod: https://fsws.usit.no/fsrest/rest/bris/sia/alle
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 GetBrisdata { private static String theUrl = "https://fs-test.uio.no/fsrest/rest/bris/sia/alle"; 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
<?xml version='1.0' encoding='utf-8'?> <bris_studenter> <student> <studentnr>20</studentnr> <navn> <fornavn>Test</fornavn> <etternavn>Testesen</etternavn> </navn> <adresse> <co/> <gate>Oslogata 1</gate> <postnr>0123</postnr> <sted>OSLO</sted> <land>OSLO</land> </adresse> <telefon/> <epost>tester@usit.uio.no</epost> <fodselsdato>07-61-68</fodselsdato> <semesterregistrering> <sist_bet_semavgift>2010V</sist_bet_semavgift> <fritak_semavgift>N</fritak_semavgift> </semesterregistrering> </student> <student> <studentnr>21</studentnr> <navn> <fornavn>Peder</fornavn> <etternavn>Aas</etternavn> </navn> <adresse> <co/> <gate>Trondheimsveien 1</gate> <postnr>7000</postnr> <sted>TRONDHEIM</sted> <land/> </adresse> <telefon> <mobil>47358689</mobil> </telefon> <epost/> <fodselsdato>06-53-73</fodselsdato> <semesterregistrering> <sist_bet_semavgift>2001V</sist_bet_semavgift> <fritak_semavgift>N</fritak_semavgift> </semesterregistrering> </student> </bris_studenter>
Hent brisdata med endringer siden for SiA
Denne tjenesten henter alle brisdata for SiA som er endret etter en gitt dato. Denne datoen angis som en UNIX-timestamp. Tjenesten er en GET-tjeneste som returnerer XML og tar timestamp som en del av sin URL.
URL for test: https://fs-test.uio.no/fsrest/rest/bris/sia/alle/endringer/<timestamp>
URL for prod: https://fsws.usit.no/fsrest/rest/bris/sia/alle/endringer/<timestamp>
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 GetBrisdataEndr { private static String theUrl = "https://fs-test.uio.no/fsrest/rest/bris/sia/alle/endringer/1388534400"; 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
<?xml version='1.0' encoding='utf-8'?> <bris_studenter> <student> <studentnr>20</studentnr> <navn> <fornavn>Test</fornavn> <etternavn>Testesen</etternavn> </navn> <adresse> <co/> <gate>Oslogata 1</gate> <postnr>0123</postnr> <sted>OSLO</sted> <land>OSLO</land> </adresse> <telefon/> <epost>tester@usit.uio.no</epost> <fodselsdato>07-61-68</fodselsdato> <semesterregistrering> <sist_bet_semavgift>2010V</sist_bet_semavgift> <fritak_semavgift>N</fritak_semavgift> </semesterregistrering> </student> <student> <studentnr>21</studentnr> <navn> <fornavn>Peder</fornavn> <etternavn>Aas</etternavn> </navn> <adresse> <co/> <gate>Trondheimsveien 1</gate> <postnr>7000</postnr> <sted>TRONDHEIM</sted> <land/> </adresse> <telefon> <mobil>47358689</mobil> </telefon> <epost/> <fodselsdato>06-53-73</fodselsdato> <semesterregistrering> <sist_bet_semavgift>2001V</sist_bet_semavgift> <fritak_semavgift>N</fritak_semavgift> </semesterregistrering> </student> </bris_studenter>
Hent brisdata opprettet etter for SiA
Denne tjenesten henter alle brisdata for SiA som er opprettet etter en gitt dato. Denne datoen angis som en UNIX-timestamp. Tjenesten er en GET-tjeneste som returnerer XML og tar timestamp som en del av sin URL.
URL for test: https://fs-test.uio.no/fsrest/rest/bris/sia/alle/opprettet/<timestamp>
URL for prod: https://fsws.usit.no/fsrest/rest/bris/sia/alle/opprettet/<timestamp>
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 GetBrisdataEndr { private static String theUrl = "https://fs-test.uio.no/fsrest/rest/bris/sia/alle/opprettet/1388534400"; 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
<?xml version='1.0' encoding='utf-8'?> <bris_studenter> <student> <studentnr>20</studentnr> <navn> <fornavn>Test</fornavn> <etternavn>Testesen</etternavn> </navn> <adresse> <co/> <gate>Oslogata 1</gate> <postnr>0123</postnr> <sted>OSLO</sted> <land>OSLO</land> </adresse> <telefon/> <epost>tester@usit.uio.no</epost> <fodselsdato>07-61-68</fodselsdato> <semesterregistrering> <sist_bet_semavgift>2010V</sist_bet_semavgift> <fritak_semavgift>N</fritak_semavgift> </semesterregistrering> </student> <student> <studentnr>21</studentnr> <navn> <fornavn>Peder</fornavn> <etternavn>Aas</etternavn> </navn> <adresse> <co/> <gate>Trondheimsveien 1</gate> <postnr>7000</postnr> <sted>TRONDHEIM</sted> <land/> </adresse> <telefon> <mobil>47358689</mobil> </telefon> <epost/> <fodselsdato>06-53-73</fodselsdato> <semesterregistrering> <sist_bet_semavgift>2001V</sist_bet_semavgift> <fritak_semavgift>N</fritak_semavgift> </semesterregistrering> </student> </bris_studenter>
Hent brisdata for en student for SiA
Denne tjenesten henter alle brisdata for en student for SiA. Dette er en GET-tjeneste som tar studentnummer som del av URL og returnerer XML.
URL for test: https://fs-test.uio.no/fsrest/rest/bris/sia/student/<studentnummer>
URL for prod: https://fsws.usit.no/fsrest/rest/bris/sia/student/<studentnummer>
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 GetBrisdataStudent { private static String theUrl = "https://fs-test.uio.no/fsrest/rest/bris/sia/student/134"; 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
<bris> <student> <studentnr>134</studentnr> <navn> <fornavn>Test</fornavn> <etternavn>Testesen</etternavn> </navn> <adresse> <co/> <gate>Osloveien 1</gate> <postnr>0123</postnr> <sted>OSLO</sted> <land/> </adresse> <telefon/> <epost/> <fodselsdato>23-56-85</fodselsdato> <semesterregistrering> <sist_bet_semavgift>2001H</sist_bet_semavgift> <fritak_semavgift>N</fritak_semavgift> </semesterregistrering> </student> </bris>