«Возникло исключение» при нажатии RPlumber API из Ubuntu 16.04

#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).