Синатра против Rails для веб-сервиса - PullRequest
1 голос
/ 07 декабря 2011

Я ищу написать веб-сервис. Простым примером того, как пользователь будет взаимодействовать с этим сервисом, является регистрация пользователя. Пользователь может нажать на сервис, чтобы создать учетную запись (если он мобильный). С другой стороны, пользователи могут войти (из мобильного приложения) в приложение, используя сервис. Теперь этот сервис для существующего приложения рельсов. Мой план состоит в том, чтобы создать приложение sinatra в этом приложении rails и монтировать его как движок rails: это приложение будет взаимодействовать с моими существующими моделями rails для производства / потребления соответствующего json. Будет ли это хороший подход? Кто-нибудь пробовал это раньше? Спасибо.

Ответы [ 3 ]

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

«Преждевременная оптимизация - корень всего зла».

Пройдите маршрут Синатры, только если вам нужна скорость.Например, ваше приложение rails может выполнять много ненужных вычислений в контроллере приложения, которые вы хотите обойти в мобильном приложении.Даже в этом случае, я был бы действительно уверен, что это потребует времени отклика на мобильном клиенте, прежде чем я пойдет по пути Синатры.Сокращение 10 миллисекунд за время отклика, вероятно, не стоит всего времени разработчика, если вы не разрабатываете игру или что-то еще, что является высоко интерактивным.Rails.В нем уже есть большая часть кода, который вам нужен.Вам просто нужно написать несколько представлений JSON.Это намного проще и проще поддерживать, чем параллельный стек Rails / Sinatra.

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

Я использовал этот подход: Рельсы с маршрутами Синатры.Если вы предоставляете RESTful API, я бы также посоветовал взглянуть на Sintra-подобную, специфичную для API структуру Grape . Эта ссылка показывает, как монтировать Grape внутри приложения Rails.Желаем удачи.

0 голосов
/ 23 января 2017

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

Вопреки распространенному мнению, вы можете легко создавать крупномасштабные приложения с помощью Sinatra, а внутреннее устройство можно организовать любым способом.

Рельсы медленные. Почему бы просто не запустить что-то быстрое для всего? Нет абсолютно ничего, что вы не можете сделать с Sinatra и чистым Rack, это невероятно гибко.

...