Получить CSV с помощью сантехника через запрос POST - PullRequest
0 голосов
/ 26 марта 2019

Я хочу отправить файл csv в базу данных, поскольку кто-то публикует файл, используя свой код VBA (VBA имеет 80 символов ограничение для своих вызовов API, поэтому ему необходимо загрузить CSV к серверу для меня, чтобы разобрать и проверить)

Для этого я использую запрос plumber и POST. Мои знания немного ограничены в том, как структурировать API для этого. Ниже приведен пример того, как это происходит. Это вообще возможно сделать с plumber?

# api_main.R

library(plumber)

#* @awesomeAPI Simple API to upload csv

#* Return status on received csv
#* @param req
#* @post /upload
function(req) {
  df <- read.csv(req$body)
  if(all(c("A", "B", "C", "D") %in% names(df))){
    return(data.frame(msg = "Not all columns available", status = 418))
  } else {
    # upload data to DB here
    return(data.frame(msg = "OK", status = 200))
  }
}

Запустить сервис:

plumber::plumb("api_main.R")$run(port = 5762)
...