Newer
Older
library(hash)
library(methods)
library(glue)
"Api",
fields = list(
api_type = "character",
export_format = "character",
root_url = "character",
parameters = "character",
id = "character",
language = "character",
version_format="numeric",
path = "character",
api_url = "character"
),
methods = list(
initialize = function(
...,
export_format = "JSON",
root_url = BASE_URL,
parameters = "",
id = "",
language = "en",
version_format=2.1,
path = "."
){
callSuper(
...,
export_format = export_format,
root_url = root_url,
parameters = parameters,
id = id,
language = language,
version_format=version_format,
path = path
)
get_url()
},
get_response = function(){
request_function <- REQUEST_FUNCTION_MAPPING[[export_format]]
print(request_function)
if(parameters==""){
url = glue("{root_url}/api/{api_url}")
} else {
url = glue("{root_url}/api/{api_url}?{parameters}")
}
print(url)
request_function(url)
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
get_url = function() {
url_mapping <- hash(
# i14y
'codelist'=
glue('CodeLists/{id}/exports/{export_format}/{version_format}'),
'content_configuration' =
glue('ContentConfigurations'),
'content_configuration_identifier' =
glue('ContentConfigurations/{id}'),
'dcat_dataset_description' =
glue('Datasets/{id}/{language}/description'),
'dcat_dataset_information' =
glue('Datasets/{id}/{language}/distributions'),
'data_structure' =
glue('DataStructures/{id}/{language}'),
'nomenclature_path_nodes' =
glue('Nomenclatures/Childnodes/{id}/{language}/{path}'),
'nomenclature_one_level' =
glue('Nomenclatures/{id}/levelexport/CSV'),
'nomenclature_multiple_levels' =
glue('Nomenclatures/{id}/multiplelevels/CSV'),
'nomenclature_search' =
glue('Nomenclatures/{id}/search'),
# dcat
'agents_list' =
glue('Agent'),
'agent_id' =
glue('Agent/{id}'),
'dataset_list' =
glue('Dataset'),
'dataset_id_distributions' =
glue('Dataset/{id}/distributions'),
'dataset_id' =
glue('Dataset/{id}'),
'dataset_identifier' =
glue('Datataset/identifier/{id}'),
'dataset_identifier_distributions' =
glue('Datataset/identifier/{id}/distributions'),
'distributions_list' =
glue('Distribution'),
'distribution_id' =
glue('Distribution/{id}')
)
api_url <<- url_mapping[[api_type]]
}
)
)
api_call <- api_class(
api_type = "codelist",
export_format = "SDMX-ML",
parameters = "level=1&annotations=true&additionalProp2=string&language=fr",
id = "CL_NOGA_SECTION"
)
api_call$api_url
api_call$get_response()
api_call <- api_class(
api_type = "nomenclature_one_level",
export_format = "CSV",
parameters = "level=1&annotations=true&additionalProp2=string&language=fr",
id = "HCL_CH_ISCO_19_PROF"
)
api_call$api_url