Я создаю веб-приложение, которое, помимо прочего, будет отображать данные истории архивов из API Регистрационной палаты. Эти данные можно получить следующим образом:
library(httr)
library(jsonlite)
library(openssl)
library(dplyr)
### retrieving filing history ####
company_num = 'FC013908'
key = 'my_key'
fh_path = paste0('/company/', str_to_upper(company_num), "/filing- history")
fh_url <- modify_url("https://api.companieshouse.gov.uk/", path = fh_path)
fh_test <- GET(fh_url, authenticate(key, "")) #status_code = 200
fh_parsed <- jsonlite::fromJSON(content(fh_test, "text",encoding = "utf-8"), flatten = TRUE)
docs <- fh_parsed$items
> glimpse(docs)
Observations: 25
Variables: 20
$ type <chr> "AP01", "AP01", "CS01", "AA", "M...
$ action_date <chr> "2017-10-01", "2017-10-01", "201...
$ subcategory <chr> "appointments", "appointments", ...
$ category <chr> "officers", "officers", "confirm...
$ date <chr> "2017-11-22", "2017-11-22", "201...
$ description <chr> "appoint-person-director-company...
$ pages <int> 2, 2, 10, 36, 5, 38, 14, 1, 31, ...
$ barcode <chr> "X6JPZWQX", "X6JPZ6G8", "X6A72QU...
$ transaction_id <chr> "MzE5MDc4MTA5NGFkaXF6a2N4", "MzE...
$ paper_filed <lgl> NA, NA, NA, TRUE, NA, TRUE, NA, ...
$ associated_filings <list> [NULL, NULL, NULL, NULL, NULL, ...
$ description_values.officer_name <chr> "Mr Michael Anthony Norcott Thom...
$ description_values.appointment_date <chr> "2017-10-01", "2017-10-01", NA, ...
$ description_values.made_up_date <chr> NA, NA, "2017-07-07", "2017-04-0...
$ description_values.charge_number <chr> NA, NA, NA, NA, "SC1500750001", ...
$ description_values.charge_creation_date <chr> NA, NA, NA, NA, "2017-04-28", NA...
$ description_values.termination_date <chr> NA, NA, NA, NA, NA, NA, NA, "201...
$ description_values.description <chr> NA, NA, NA, NA, NA, NA, NA, NA, ...
$ links.self <chr> "/company/SC150075/filing-histor...
$ links.document_metadata <chr> "https://frontend-doc-api.compan...
Теперь я хочу создать гиперссылку для всех links.document_metadata
наблюдений (или кнопки действия рядом с каждым наблюдением, не имеет значения), чтобы сделать еще один вызов API, чтобы получить фактический документ и открыть его в браузере, но только после нажатия на . Весь необходимый код для совершения такого звонка вы можете найти здесь .
Я даже не уверен, как подойти к этому: если бы я хотел создать actionButton
для каждого наблюдения, как бы я смог observeEvent
для всех них? Кроме того, я мог бы вставить ссылку, используя
tagList("URL link:", url)
, как предложено здесь , но таким образом мне нужно было бы выполнять вызовы API для каждого элемента в data.table, независимо от того, собирается ли кто-то щелкнуть по нему или нет, и это будет серьезно замедлить приложение. Есть идеи, как это сделать?