Estoy tratando de dividir mi aplicación web Ruby on Rails 3 actual y sus servicios web (API). Mi aplicación web se ejecuta en Heroku e implementa API como una ruta de espacio de nombres dentro de mi aplicación. Por ejemplo, /events
devuelve una página HTML y /api/v1/events
devuelve datos JSON.Sinatra Warden con la aplicación Ruby on Rails existente que usa Devise
Según algunos best practices, quiero dividirlos en dos aplicaciones diferentes. He elegido Sinatra para implementar la aplicación API. Funciona ahora para solicitudes simples donde no se requiere autenticación.
La aplicación My Ruby on Rails 3 está utilizando Devise para autenticar usuarios. También hay posibilidad de iniciar sesión con una cuenta de Facebook. Ahora lo que quiero lograr es la Autenticación Básica HTTP de los usuarios (incluido el registro) a través de mi API basada en Sinatra usando Warden.
¿Cuál es la mejor manera de hacerlo? ¿O quizás pueda usar algo diferente que Warden?
Tenga en cuenta que no estoy muy familiarizado con el estante :)
Mi preferencia personal es la subclase ActionController :: Metal http://apidock.com/rails/ActionController/Metal. Lo más probable es que tenga una aplicación más rápida y consistente usando este enfoque, en lugar de mezclar marcos. Sinatra no tiene ningún beneficio en absoluto en su escenario. – Roman
@Roman qué marco si alguno recomendaría? Creo que Rails es pesado para este tipo de trabajo. – Ivan
Como dije, la característica de los rieles a menudo se pasa por alto, que ofrece un muy buen rendimiento con una sobrecarga mínima. Básicamente es un módulo de rack que puede aprovechar el enrutador de los rieles. – Roman