Преобразовать пользовательский API в Ruby on Rails ActiveResource

#c #ruby-on-rails #xml-rpc #activeresource

#c #ruby-on-rails #xml-rpc #activeresource

Вопрос:

У меня есть набор встроенных устройств, на которых выполняется программное обеспечение, написанное на c . API для обмена данными между устройствами прост: получение / установка / сбор параметров и сигналов.

Я хотел бы реализовать общее веб-приложение для доступа ко всем устройствам из одной точки.

Моя идея заключалась в том, чтобы добавить XML-интерфейс RPC к устройствам, а затем использовать ActiveResource для доступа к устройствам с веб-сервера. Похоже, что эта комбинация вообще не используется на практике.

Я волен выбирать любой протокол внутри устройств. Каковы ваши рекомендации?

Ответ №1:

Если вы уже рассматриваете XML RPC, я предполагаю, что у вас есть какой-то веб-сервер, работающий на устройстве. Я бы, вероятно, выбрал веб-сервис RESTful вместо XML RPC. При тщательном проектировании вы могли бы иметь соответствующие службы в своем приложении Rails.

Например:

http://somedevice/signals.json — получает все сигналы

http://yourrailsapp/somedevice/signals.json — получает сигналы некоторого устройства; вы могли бы использовать идентификатор вместо этого здесь, если это имеет больше смысла ( http://yourrailsapp/devices/1/signals.json ).

Комментарии:

1. На данный момент у меня нет никакого веб-сервера (службы), запущенного на устройствах. Я думал добавить что-нибудь очень легкое, даже лучше встраиваемое, которое может использовать протокол, понятный Rails. Устройства будут выполнять только перевод между внутренним пользовательским API и веб-сервисом. Доступна ли библиотека C / C , которая может обслуживать JSON?

2. Не слишком увлекайтесь самим форматом данных. XML — это нормально, я просто предпочитаю использовать json там, где могу. Я лишь немного знаком с XML RPC, но, насколько я понимаю, для этого требуется http (отсюда мое предположение о каком-то веб-сервере, работающем на вашем устройстве).

3. Я буду использовать HTTP-библиотеку c , такую pion.org/projects/pion-network-library и внедрить с его помощью веб-сервис restful. Я буду использовать формат, который проще всего интегрировать с Rail 3.

Ответ №2:

Вероятно, вы не найдете много материалов XML RPC в сообществе Rails. Rails сам по себе действительно подталкивает вас к веб-сервисам RESTful. В частности, ресурсоориентированная архитектура RESTful. Об этом есть отличные книги, но все сводится к использованию http-методов (get, put, post, delete) вместо передачи параметров, а затем некоторых интеллектуальных URL-адресов.