#r #ubuntu-16.04 #plumber
#r #ubuntu-16.04 #водопроводчик
Вопрос:
Я использую RPlumber
для создания API, который делает некоторые данные доступными для пользователей API. Я создал сервер Ubuntu 16.04 на Linode для размещения API.
Я успешно установил R на сервер и все библиотеки и могу запустить скрипт на компьютере с помощью command Rscript file_that_runs_rplumber.R
. Когда я запускаю скрипт, командная строка зависает с:
Running plumber API at http://0.0.0.0:8004
Running swagger Docs at http://127.0.0.1:8004/__docs__/
… итак, я знаю, что API успешно запущен. Я пытаюсь попасть в эту конечную точку со своего локального компьютера, а не с сервера Linode, и поэтому я 0.0.0.0
заменяю его своим IP-адресом 1.2.3.4 lets say
. Когда я захожу 1.2.3.4:8008/__docs__/
, эта страница работает, и я получаю автоматически сгенерированные документы RPlumber API:
Однако, когда я /__docs__/
заменяю одну из конечных точек API, я получаю следующее:
Я вижу из командной строки для сервера Linode, что код R, связанный с конечной точкой, запущен, однако он просто не возвращается ко мне. Возможно, это проблема безопасности, из-за которой я не могу получить доступ к конечной точке на моем локальном компьютере? Как я могу обновить сервер, чтобы моя локальная машина (и любые другие машины) могли получить доступ к этому API?
Спасибо!
Комментарии:
1. API отвечает, в вашей функции / дескрипторе конечной точки возникает ошибка. Это не ошибка 404.
2. @BrunoTremblay Я все же протестировал, и моя функция конечной точки отлично работает на моем локальном компьютере. Возможно, мне все еще где-то не хватает библиотеки. Я попытаюсь создать фиктивную конечную точку, которая возвращает фиктивные данные, чтобы подтвердить то, что вы говорите. Вы, кажется, вполне уверены, что это не проблема с брандмауэром / разрешениями?
3. Знаете ли вы, возможно ли получить журнал ошибок из этого где-нибудь
4. Я обнаружил проблему, но она выходит за рамки этого вопроса, поэтому я опубликую новый. Спасибо, Бруно.
5. Да, активируйте отладку. $setDebug(TRUE) или pr_set_debug(pr, TRUE).