forked from AndreasFischer1985/berufenet-api
-
Notifications
You must be signed in to change notification settings - Fork 0
/
api_example.R
33 lines (27 loc) · 1.34 KB
/
api_example.R
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
##################
# Simple Examples
##################
install.packages(c("devtools","jsonlite","httr","stringr"))
devtools::install_github("AndreasFischer1985/qqBaseX")
# BERUFENET-API-Key:
#-------------------
x=httr::GET("https://web.arbeitsagentur.de/berufenet/ergebnisseite/berufe-a-z?buchstabe=a&page=0")
xApiKey=stringr::str_match_all(httr::content(x,"text"),"client.*'")[[1]][,1]
xApiKey=substr(xApiKey,12,nchar(xApiKey)-1)
# BERUFENET-Berufsliste:
#-----------------------
url="https://rest.arbeitsagentur.de/infosysbub/bnet/pc/v1/berufe?suchwoerter=*"
x=rawToChar(httr::content(httr::GET(url, httr::add_headers("X-API-Key"=xApiKey))))
pages=jsonlite::fromJSON(x)$page$totalPages
x=lapply(0:(pages-1),function(x) rawToChar(httr::content(httr::GET(paste0(url,"&page=",x),
httr::add_headers("X-API-Key"=xApiKey)))))
y=data.frame(
unlist(lapply(x,function(x)jsonlite::fromJSON(x)$'_embedded'$berufSucheList[,1])),
unlist(sapply(x,function(x)jsonlite::fromJSON(x)$'_embedded'$berufSucheList[,2])))
colnames(y)=c("id","kurzBezeichnungNeutral")
write.csv2(y,"berufe.csv")
# BERUFENET-Berufsinformationen:
#-------------------------------
url="https://rest.arbeitsagentur.de/infosysbub/bnet/pc/v1/berufe/129987"
x=httr::content(httr::GET(url, httr::add_headers("X-API-Key"=xApiKey)))
writeLines(jsonlite::toJSON(x), "berufenet-infos_bsp1.json", useBytes=T)