У нас был похожий случай, когда мы удалили некоторую часть пути API. В основном мы перешли от /api/app/v1/*
до /api/v1/*
Мы помещаем это в наши маршруты
match '/api/app/v1/*path', to: redirect(path: '/api/v1/%{path}'), via: :all
Это было нормально, за исключением некоторых маршрутов, которые заканчивались параметрами пути, включая точки. Например. /api/v1/foo/00.00.100
, где .100
был разобран в format
, а оставшийся параметр имел значение 00.00
Мы охраняли это с некоторым ограничением на параметры.
put '/api/app/v1/foo/:version',
constraints: { version: /([0-9]+)\.([0-9]+)\.([0-9]+)/ },
to: redirect('/api/v1/foo/%{version}')
Редактировать: мы используем рельсы 5