Как сделать сантехник :: отвес (file = 'mypath') в httr? - PullRequest
0 голосов
/ 08 мая 2020

Я изо всех сил пытаюсь найти решение, в котором httr может делать то же самое, что и сантехник в R. В сантехнике вот код, который работает:

1). Создайте скрипт hello_world_plumber.R

#' @post /hello_world
hi <- function(name) {
  return(paste0('Hello ', name, '!'))
}

2). В другом скрипте:

pr <-  plumb(file = '~/hello_world_plumber.R')
pr$run(swagger = F)

Starting server to listen on port 5852
Running the swagger UI at http://127.0.0.1:5852/__swagger__/

3). В терминале

curl -s --data 'Matt' http://127.0.0.1:5852/hello_world
Out: Hello Matt!

1 Ответ

1 голос
/ 08 мая 2020

plumber построен на основе библиотеки httpuv, чтобы помочь вам быстро определить API с некоторыми украшениями.

httr пакет предназначен для отправки HTTP-запросов с помощью команды curl.

Итак, httr подобен клиенту, а plumber - вашему серверу. Вот почему здесь больше загрузок. Chrome / Firefox скачать намного больше, чем Nginx / Apache, это просто природа инструментов.

Вы можете добиться того же без сантехника, просто используя httpuv, если вы этого не сделаете забота об оформлении, asyn c, синтаксическом разборе строки запроса и тела, openapi и других вкусностях. хотя он довольно прост.

runServer("127.0.0.1", 8477,
  list(
    call = function(req) {
      list(
        status = 200L,
        headers = list(
          'Content-Type' = 'text/html'
        ),
        body = "Hello world!"
      )
    }
  )
)

Также есть несколько plumber альтернатив, RestRserve, OpenCPU и многие другие.

В зависимости от вашего варианта использования вы выбираете что лучше всего подходит для вас. Если вам нужна помощь сантехника, не стесняйтесь спрашивать. Я не думаю, что он скоро исчезнет, ​​поскольку он был включен в RStudio IDE, и я думаю, что его декоративная структура а-ля roxygen2 упрощает внедрение.

...