Actualmente estoy implementando versiones para nuestra API REST en nuestra aplicación Rails. ¿Hay alguna manera de implementar esto, por lo que solo defines nuevas funcionalidades en las nuevas versiones? Digamos por ejemplo:Versiones API elegantes en Rails
Tengo un controlador de usuario y un controlador de productos. Los productos se han mantenido igual entre V1 y V2, pero los usuarios han cambiado. Sería bueno si pudiésemos configurarlo de modo que si solicito el V2 de Productos, mi aplicación sepa que no existe y simplemente use la versión más reciente del controlador (en este caso, V1). Esto nos permitiría no crear un nuevo conjunto de controladores para cada versión; solo creamos nuevos controladores para la funcionalidad específica que ha cambiado.
A continuación se muestra un fragmento de nuestro Routes.rb, y no tengo idea de cómo abordar este problema. ¡Cualquier ayuda sería muy apreciada!
namespace :api do
scope module: :v1, constraints: ApiConstraints.new(version: 1) do
resources :users
resources :products
end
scope module: :v2, constraints: ApiConstraints.new(version: 2) do
resources :users
end
end
¡Gracias por la respuesta rápida! Nuestro equipo ya está usando RABL, por lo que nos gustaría reutilizar esos puntos de vista en Grape. Estoy buscando en Grape ahora mismo y una vez que tenga una implementación en funcionamiento lo marcaré como la respuesta. – NSCodeCasts