From 4ee11630c9422ec170f5c3dd4fb26472812559e9 Mon Sep 17 00:00:00 2001 From: bonushenricus <62553299+bonushenricus@users.noreply.github.com> Date: Wed, 7 Feb 2024 16:36:05 +0100 Subject: [PATCH 1/3] Create httr2_sandfly_taxon_names.R objectives: get a taxon_names_id and other attributes of a taxon name, from endpoint taxon_names --- src/R/v1/httr2_sandfly_taxon_names.R | 47 ++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 src/R/v1/httr2_sandfly_taxon_names.R diff --git a/src/R/v1/httr2_sandfly_taxon_names.R b/src/R/v1/httr2_sandfly_taxon_names.R new file mode 100644 index 0000000..4070b0f --- /dev/null +++ b/src/R/v1/httr2_sandfly_taxon_names.R @@ -0,0 +1,47 @@ +#reference: https://httr2.r-lib.org/articles/wrapping-apis.html - https://www.tidyverse.org/blog/2023/11/httr2-1-0-0/ - https://github.com/melissavanbussel/YouTube-Tutorials/blob/main/httr2/httr2_examples.R +#objectives: get a taxon_names_id and other attributes of a taxon name, from endpoint taxon_names +library(httr2) +library(tidyverse) + +#Define access token +access_token_taxonworks_sandfly = TAXONWORKS_TOKEN +project_token_taxonworks_sandfly = TAXONWORKS_PROJECT_TOKEN + +#Define base urls +base_url_taxonworks_sandfly = "https://sandfly.taxonworks.org/api/v1" + +#Define endpoints +endpoint_taxonnames = "/taxon_names" #first objectives: get the taxon_id of a taxon name + +#Define request +req_taxonnames_sandfly = request(base_url_taxonworks_sandfly) %>% + req_url_path_append(endpoint_taxonnames) %>% + req_url_query(project_token=project_token_taxonworks_sandfly) #the project_token is necessary to authorize the request + +#Define query +req_taxonnames_sandfly_query = req_taxonnames_sandfly %>% + req_url_query( + validity="true", + name_exact="true", + name="Eurytoma morio") + +#Provide access token via header +req_taxonnames_sandfly_query_auth = req_taxonnames_sandfly_query %>% + req_headers( + 'Authorization'=paste0('Token ',access_token_taxonworks_sandfly) + ) + +#Perform response +resp_perform_taxonnames_sandfly = req_taxonnames_sandfly_query_auth %>% + req_perform() +resp_perform_taxonnames_sandfly_json = resp_perform_taxonnames_sandfly |> + resp_body_json() + +resp_perform_taxonnames_sandfly_string = resp_perform_taxonnames_sandfly |> + resp_body_string() + +#Transform to dataframe +library(jsonlite) +resp_perform_taxonnames_sandfly_dataframe = fromJSON(resp_perform_taxonnames_sandfly_string) %>% as.data.frame() + + From 015cb19b964ac47f709cddc438fe78e6a28ef7c8 Mon Sep 17 00:00:00 2001 From: bonushenricus <62553299+bonushenricus@users.noreply.github.com> Date: Fri, 9 Feb 2024 18:41:07 +0100 Subject: [PATCH 2/3] Update httr2_sandfly_taxon_names.R --- src/R/v1/httr2_sandfly_taxon_names.R | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/src/R/v1/httr2_sandfly_taxon_names.R b/src/R/v1/httr2_sandfly_taxon_names.R index 4070b0f..f6486d9 100644 --- a/src/R/v1/httr2_sandfly_taxon_names.R +++ b/src/R/v1/httr2_sandfly_taxon_names.R @@ -1,5 +1,5 @@ #reference: https://httr2.r-lib.org/articles/wrapping-apis.html - https://www.tidyverse.org/blog/2023/11/httr2-1-0-0/ - https://github.com/melissavanbussel/YouTube-Tutorials/blob/main/httr2/httr2_examples.R -#objectives: get a taxon_names_id and other attributes of a taxon name, from endpoint taxon_names +#objectives: get a taxon_names_id and other attributes of a taxon name, from endpoint taxon_names in a csv file library(httr2) library(tidyverse) @@ -22,8 +22,7 @@ req_taxonnames_sandfly = request(base_url_taxonworks_sandfly) %>% req_taxonnames_sandfly_query = req_taxonnames_sandfly %>% req_url_query( validity="true", - name_exact="true", - name="Eurytoma morio") + name_exact="true") #Provide access token via header req_taxonnames_sandfly_query_auth = req_taxonnames_sandfly_query %>% @@ -31,17 +30,24 @@ req_taxonnames_sandfly_query_auth = req_taxonnames_sandfly_query %>% 'Authorization'=paste0('Token ',access_token_taxonworks_sandfly) ) -#Perform response -resp_perform_taxonnames_sandfly = req_taxonnames_sandfly_query_auth %>% - req_perform() -resp_perform_taxonnames_sandfly_json = resp_perform_taxonnames_sandfly |> - resp_body_json() +library(readr) +identificati <- read_csv("lista_identificati.csv") +lista_identificati = as_vector(identificati$name) +#names=lapply(lista_identificati, function(lista_identificati) paste0("name=",lista_identificati)) -resp_perform_taxonnames_sandfly_string = resp_perform_taxonnames_sandfly |> - resp_body_string() +reqs = lapply(lista_identificati, function(lista_identificati) req_url_query(req_taxonnames_sandfly_query_auth,name=lista_identificati)) + +#Perform responses +resps = reqs %>% + req_perform_sequential() + +resp_perform_taxonnames_sandfly_string = resps |> resps_successes() |> resps_data(\(resp) resp_body_string(resp)) #Transform to dataframe library(jsonlite) -resp_perform_taxonnames_sandfly_dataframe = fromJSON(resp_perform_taxonnames_sandfly_string) %>% as.data.frame() +resp_perform_taxonnames_sandfly_dataframe = lapply(resp_perform_taxonnames_sandfly_string, function(x) fromJSON(x)) +library(dplyr) +dataframe = bind_rows(resp_perform_taxonnames_sandfly_dataframe) + From bcc1f8742a004054ba3136749eceff721b152b95 Mon Sep 17 00:00:00 2001 From: bonushenricus <62553299+bonushenricus@users.noreply.github.com> Date: Fri, 9 Feb 2024 18:42:34 +0100 Subject: [PATCH 3/3] Update httr2_sandfly_taxon_names.R --- src/R/v1/httr2_sandfly_taxon_names.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/R/v1/httr2_sandfly_taxon_names.R b/src/R/v1/httr2_sandfly_taxon_names.R index f6486d9..a688be0 100644 --- a/src/R/v1/httr2_sandfly_taxon_names.R +++ b/src/R/v1/httr2_sandfly_taxon_names.R @@ -47,7 +47,7 @@ resp_perform_taxonnames_sandfly_string = resps |> resps_successes() |> resps_dat library(jsonlite) resp_perform_taxonnames_sandfly_dataframe = lapply(resp_perform_taxonnames_sandfly_string, function(x) fromJSON(x)) library(dplyr) -dataframe = bind_rows(resp_perform_taxonnames_sandfly_dataframe) +dataframe_identificati = bind_rows(resp_perform_taxonnames_sandfly_dataframe)