2015-06-04 2 views
2

У меня возникли проблемы с получением Grape, чтобы ответить на чисто дикий маршрут карты.Подвижная трасса в Винограде

Я имею в виду, что если у меня есть простой маршрут определяется как

get do 
... 
end 

мне нужно ответить на все возможные запросы, сделанные в API. Ситуация в том, что мне нужно проанализировать путь и параметры, а затем работать через дерево решений на основе этих значений.

Я пробовал несколько вариантов на определении маршрута, такие как:

get '/*' do 
... 
end 

get '/(*)' do 
... 
end 

но безрезультатно.

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

Спасибо!

ответ

3

Вы были близки с догадкой в ​​синтаксисе, вам просто нужно назвать соответствие параметров:

Э.Г.

get '*thing' do 
    { :thing => params[:thing] } 
    end 

Использование * сделает парам захватить остальную часть пути URI, игнорируя / разделители. Но в противном случае он ведет себя так же, как любой другой параметр.

Примечания это только пикап в стойке точки монтирования, в лучшем случае, так что если у вас есть

prefix  'api' 
    version  'v2' 

, то он будет реагировать на тракты как /api/v2/hkfhqk/fwggw/ewfewg

Если вы используете это для 404 или других catch-all, то вам нужно добавить его в конце, иначе он будет маскировать более конкретные маршруты.

Смежные вопросы