Доступ к бизнес-уровню Erlang через REST - PullRequest
4 голосов
/ 08 января 2009

Для проекта колледжа я думаю о внедрении бизнес-уровня в Erlang и последующем доступе к нему через несколько внешних интерфейсов с помощью REST. Я хотел бы воспользоваться функциями OTP, такими как распределенные приложения и т. Д.

У меня вопрос, как мне выставить вызовы / приведения gen_server другим приложениям? Очевидно, что я мог бы делать вызовы RPC через языковые "мосты", такие как OTP.net или JInterface, но я хочу последовательный способ доступа к нему, как REST.

Ответы [ 6 ]

10 голосов
/ 09 января 2009

Как уже упоминалось, Yaws или Mochiweb - отличный способ, но если вам нужен простой и простой способ быстро и правильно выполнить RESTful API, используйте Webmachine . Это слой поверх Mochiweb, который реализует правильное поведение HTTP на основе удивительной блок-схемы HTTP Алана Дина и позволяет легко выполнить REST правильно.

Я использую его прямо сейчас для предоставления REST API, а также для работы с приложением COMET, и это было довольно легко сделать даже для новичка в Erlang, такого как я.

3 голосов
/ 09 января 2009

Я сделал нечто подобное для своей работы и нашел, что лучше всего использовать REST для раскрытия бизнес-уровня, потому что даже унаследованные языки, такие как Natural от SoftwareAG, могут получить к нему доступ. Лучший механизм, который я нашел в Erlang, это использовать Mochiweb .

Вы можете найти больше информации об его использовании из скринкаста, расположенного по адресу Эрланг на практике Screencast . Эпизод 6 особенно полезен, но все они превосходны.

Ресурс для установки: Как быстро настроить Ubuntu 8.04, загруженный с Erlang, Mochiweb и Nginx и Перенос собственного интерфейса Erlang в RESTful Mochiweb (с небольшим количеством TDD) обеспечивает хорошее начало, если вы не находите скринкасты по своему вкусу.

2 голосов
/ 11 июня 2010

Ссылка на блок-схему HTTP не работает. Оригинальная версия и обновленная версия, созданные в сотрудничестве между Аланом Дином и Джастином Шихи, также размещены в проекте Webmachine: ссылка на последнюю версию HTTP Diagramm .

0 голосов
/ 11 июня 2010

Просто обновление, Webmachine перешел на bitbucket: новая ссылка на Webmachine

0 голосов
/ 09 июля 2009

Вы действительно имеете в виду интерфейс RESTful или RPC через HTTP? Создание интерфейса RESTful поверх существующего слоя - это больше, чем просто показ существующих методов через HTTP.

Я бы предложил использовать mochiweb или yaws для реализации (общего) слоя rpc.

0 голосов
/ 08 января 2009

Существует ценный подход к проектированию вызовов / приведений gen_server во вкусе REST, если это возможно. Вы можете использовать сообщения как

{get, Resource}
{set, Resource, Value} % aka PUT
{delete, Resource}
{add, Resource, Value} % aka POST (possible another names are append, modify or similar)

Тогда его отображение легко. Вы можете сделать какое-то преобразование URI-> RESOURCE или использовать тождество. Для большей части вашего приложения это должен быть подход сусла и особые случаи, которые вы должны обрабатывать специально. Вы можете думать, что будет большая разница, когда вы не сможете использовать этот подход, но это должно быть в основном преждевременной оптимизацией.

...