Создание REST API с помощью Ruby / Sinatra и JRuby или Scala - PullRequest
3 голосов
/ 15 декабря 2011

Я создаю новый REST API, который заменит ранее существовавший. Более старый API был написан как API-интерфейс SOAP, построенный на Java, и именно здесь находятся вопросы. Большинство библиотек уровня доступа к данным написаны на Java, и если бы мы могли использовать эти библиотеки, это было бы большим преимуществом.

Наши два варианта: Рубин / Синатра и Скала / Лифт

У нас также есть возможность использовать JRuby в стеке Ruby / Sinatra для использования библиотек Java, которые я упоминал ранее. Наше главное беспокойство связано с возможной несовместимостью библиотек JRuby-Java ...

Как вы думаете, это лучший подход?

Ответы [ 3 ]

5 голосов
/ 15 декабря 2011

Я использую Ruby последние 2 года и недавно пытался разработать приложение с использованием Scala & Lift.

Я отказался от Scala в пользу Ruby, и вот почему.

Сообщество Ruby огромно по сравнению с Lift, вы можете получить драгоценный камень в основном для всего, есть тонна документации и учебных пособий, и вы легко получите быстрый ответ, когда столкнетесь с проблемами. Тег Lift здесь на SO содержит только около 500 вопросов.

У Lift совершенно другой подход к вещам , и, если вы уже не знаете Scala, вам будет очень больно, прежде чем вы освоите его.

С другой стороны, Синатра чертовски прост и очевиден. Его легко интегрировать с другими стоечными библиотеками, и есть только тонны документации и руководств по вопросам, связанным с Sinatra.

Я не хочу звучать так, как будто я думаю, что Лифт - это плохо, но, безусловно, гораздо сложнее начать. Создание прототипа с помощью Sinatra также безумно просто, поскольку вы можете поместить все в один файл. Лифт намного тяжелее.

Все это сводится к вопросу предпочтения. Если вы не боитесь Скалы, попробуйте Lift. Но если вы просто хотите закончить, Синатра даст вам гораздо меньше головной боли.

5 голосов
/ 15 декабря 2011

Если вы смотрите на Ruby / Sinatra, вы можете рассмотреть Scala / Scalatra вместо лифта, поскольку они очень похожи. Преимуществом scala здесь будет действительно отличное взаимодействие с Java. Другой вариант, который стоит рассмотреть, это Finagle (мой любимый), так как он проверен на практике и ориентирован на хостинг (по сравнению с веб-страницами)

2 голосов
/ 16 декабря 2011

Кажется, что вы уже выбрали ответ, но только мои 2 цента: если вы действительно хотите попробовать Lift, есть пример REST для лифта на wiki , другой на Simply Lift book .

Более сложный пример, который использует REST, но также имеет интерфейс на основе Comet, можно найти в этом блоге (заявление об отказе: я написал этот пост)

...