Plumber API には、次のような単純な関数があります。
library(methods)
library(plumber)
# Other functions...
#' @param elist The list of events to process as a string
#' @get /process
process_events <- function(elist=""){
setClass("EventPattern", representation(sequence="character", probability="numeric", endProbs="data.frame"))
q <- new("EventPattern", sequence=elist, probability=1, endProbs=data.frame(None=0))
# Further code that should make use of q
}
Plumber を (ローカルで) 起動し、API を含むスクリプト (上記) を次のように指定します。
r <- plumb('/path/to/script/forecast.R')
r$run(port=8000, swagger = TRUE)
アドレスで関数を呼び出します (PostMan を使用):
http://localhost:8000/process?elist="abcd"
しかし、私が最終的に得たのは、R コンソールが次のように言っている「例外が発生しました」です。
<simpleError: No method for S4 class:EventPattern>
メソッド(ジェネリック)が必要であることをエラーが示唆していることに気付きましたが、次のように入力すると:
q <- new("EventPattern", sequence=elist, probability=1, endProbs=data.frame(None=0))
私のマシンでローカルに(Rコンソールで)正常に動作します。何かが完全にロードされていないか、Plumber で利用できないことが示唆されていますが、それを修正する方法がわかりません。何か案は?