Kodeeksempler
Se kodeeksempler fra forskellige populære programmeringssprog.
Indholdsfortegnelse
Følgende kodeeksempler er tilgængelige her på siden.
Python
For at kunne køre eksemplet herunder skal Python installeres. Se vejledninger og hent installationen på Pythons egen hjemmeside: python.org.
Scriptet gør brug af requests pakken. Installer den ved at køre følgende kommando.
python -m pip install requests
Følgende Python kode henter et dataudtræk fra API'et.
#Følgende moduler skal importeres da der anvendes funktioner fra dem
import requests
import json
#URL til dataudtræk (statistik)
api_url = "https://api.uddannelsesstatistik.dk/Api/v1/statistik"
#Her indsættes api-nøgle
api_key = INSERT KEY HERE
#Her indsættes forespørgsel fra Online Værktøj
query = INSERT QUERY HERE
#Der sendes en POST-anmodning til API'en med angivet URL, forespørgsel og api-nøgle
#Svaret gemmes i variablen: response
headers = {"content-type":"application/json", "authorization":"Bearer %s" % api_key}
response = requests.post(api_url, data=json.dumps(query), headers=headers)
response.json()
Afvikles scriptet fås følgende resultat.
.NET Core
For at kunne køre eksemplet herunder skal .NET Core installeres. Se vejledninger og hent installationen på Microsofts egen hjemmeside: https://dotnet.microsoft.com/en-us/download.
Programmet herunder er skrevet i C#.
using System;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
var url = "https://api.uddannelsesstatistik.dk";
var path = "/api/v1/statistik";
var key = "INSERT KEY HERE";
var query = "INSERT QUERY HERE";
HttpClient client = new HttpClient();
client.BaseAddress = new Uri(url);
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", key);
var response = client.PostAsync(path, new StringContent(query, UnicodeEncoding.UTF8, "application/json")).Result;
if (response.IsSuccessStatusCode)
{
var result = response.Content.ReadAsStringAsync().Result;
Console.WriteLine(result);
}
}
}
}
Afvikles programmet fås følgende resultat.
Javascript
Javascript afvikler i alle moderne browsere, og gør det nemt at lave kodede tilføjelser til web sider. Javascript kommer som en del af browseren, og der er ikke behov for yderligere installation eller tilføjelser for at begynde at bruge JavaScript.
Modulet herunder gør det nemt at hente data fra vores API.
function QueryHelper(key, annotation = "") {
this.url = "https://api.uddannelsesstatistik.dk/Api/v1/";
this.key = key;
this.annotation = annotation;
this.DoQuery = async function (endpoint, qry, accept) {
return fetch(this.url + endpoint, {
method: 'POST',
cache: 'no-cache',
headers: {
"Authorization": "Bearer " + this.key,
"Accept": accept,
"Content-type": "application/json",
"Annotation": this.annotation,
},
body: JSON.stringify(qry)
}).then(data => {
if (data.status == 200 && accept == "application/json")
return data.json().then(text => { return text });
else if (data.status == 200)
return data.text().then(text => { return text });
return Promise.reject(data);
});
}
this.DoSchemaQuery = async function (qry, accept = "application/json") {
return this.DoQuery("skema", qry, accept);
}
this.DoDataQuery = async function (qry, accept = "application/json") {
return this.DoQuery("statistik", qry, accept);
}
};
Modulet anvendes på følgende måde
var key = "ADD KEY HERE";
var qry = ADD QUERY HERE;
var qh = new QueryHelper(key, "JavaScript Example");
qh.DoDataQuery(qry).then(data => {
ADD LOGIC HERE
}).catch((ex) => {
ex.text().then(txt => { console.log(txt); });
});
Afvikles scriptet fås følgende resultat.
Java
For at kunne køre eksemplet herunder skal Java installeres. Se vejledninger og hent installationen på Javas egen hjemmeside: www.java.com.
Følgende Java kode henter et dataudtræk fra API'et.
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
class JavaExample {
public static void main(String[] args) {
try {
// Sending get request
URL url = new URL("https://api.uddannelsesstatistik.dk/Api/v1/statistik");
String qry = "INSERT QUERY HERE";
String key = "INSERT KEY HERE";
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestProperty("Accept", "application/json");
conn.setRequestProperty("Authorization","Bearer " + key);
conn.setRequestProperty("Content-Type","application/json");
conn.setRequestMethod("POST");
conn.setDoOutput(true);
OutputStream os = conn.getOutputStream();
os.write(qry.getBytes());
os.flush();
os.close();
BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String output;
StringBuffer response = new StringBuffer();
while ((output = in.readLine()) != null) {
System.out.println("Response:-" + output.toString());
}
in.close();
} catch(Exception ex) {
System.out.println(ex.toString());
}
}
}
Afvikles scriptet fås følgende resultat.
PHP
For at kunne køre eksemplet herunder skal PHP installeres. Se vejledninger og hent installationen på PHPs egen hjemmeside: www.php.net.
try {
$url = "https://api.uddannelsesstatistik.dk/Api/v1/statistik";
$data = 'INSERT QUERY HERE';
$key = "INSERT KEY HERE";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json' ,
'Authorization: Bearer '.$key
));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
$result = curl_exec($ch);
if(curl_errno($ch)){
echo 'Curl error: ' . curl_error($ch);
}
$data = json_decode($result, true);
print_r($data);
curl_close($ch);
} catch (Exception $e) {
echo 'Caught exception: ', $e->getMessage(), "\n";
}
Afvikles scriptet fås følgende resultat.
Windows Powershell
Følgende script kan afvikle på et Windows styresystem i en Powershell kommando prompt.
$key = 'INSERT KEY HERE''
$data = 'INSERT QUERY HERE'
$headers = @{
accept = "application/json";
"content-type" = "application/json; charset=utf-8";
authorization = "Bearer $key";
}
Invoke-WebRequest -H $headers -B ([System.Text.Encoding]::UTF8.GetBytes($data)) -Method 'POST' -Uri https://api.uddannelsesstatistik.dk/Api/v1/statistik
Afvikles scriptet fås følgende resultat.
Linux curl
Følgende script kan afvikle på et Linux styresystem ved at bruge kommandoen curl.
curl --insecure -X POST \
-H "accept: application/json" \
-H "Content-Type: application/json" \
-H "authorization: Bearer INSERT KEY HERE" \
-d 'INSERT QUERY HERE' \
https://api.uddannelsesstatistik.dk/Api/v1/statistik
Afvikles scriptet fås følgende resultat.
R
For at kunne køre eksemplet herunder skal R installeres. Se vejledninger og hent installationen på R's egen hjemmeside: www.r-project.org.
Følgende R kode henter et dataudtræk fra API'et.
#For at kunne bruge funktioner til kaldet af API'et skal der installeres følgende pakker
install.packages("httr")
install.packages("jsonlite")
#Herefter anvendes pakkerne i biblioteket
library(httr)
library(jsonlite)
#De forskellige dele, som indgår i kaldet, kan i R gemmes som objekter vha. '<-'
#De efterfølgende skridt er de forskellige dele, der gemmes som forskellige objekter
#URL til dataudtræk (statistik)
URL_stat <- 'https://api.uddannelsesstatistik.dk/api/v1/statistik'
#Heri indsættes api-nøgle. Det er vigtigt at der skrives "Bearer ", dvs. inkl. mellemrum
auth_key <- 'Bearer [Indsæt api-nøgle her]'
#Her indsættes JSON strengen
#OBS! JSON-strengen skal ikke være formateret fra online toolet af hensyn til R's håndtering af linjeskift
query <- '[Indsæt query fra online toolet her]'
#Her ændres formatet i JSON-strengen vha. escape karakterer, så API'et kan læse JSON koden
format_query <- gsub('"', '\"', query)
#Her defineres loopet til forespørgsel af multiple pages:
page <- 1
api_response_length <- 1
data <- list()
while (api_response_length > 0) {
change_page <- gsub('1', page, format_query)
kald <- POST(url = URL_stat, add_headers(Authorization = auth_key), content_type_json(), accept_json(), encode = "json", body = fromJSON(change_page, simplifyVector = FALSE))
indhold_kald <- content(kald, as = "text")
apiresponse <- fromJSON(indhold_kald)
data[[page]] <- apiresponse
api_response_length <- length(apiresponse)
page <- page + 1
}
#loopet bindes her til et objekt, som danner en tabel med resultatet af forespørgslen:
Dataudtraek <- do.call(rbind, data)
Dataudtraek
Afvikles scriptet fås følgende resultat.