2016-02-14 3 views
5

Я использую Freya web stack для создания REST API, и у меня возникают проблемы с определением шаблона U12 для маршрута.Freya - Как определить шаблон Uri с необязательными параметрами строки запроса

Я определил Uri шаблон который выглядит следующим образом:

"/{store}/{partition}{?date}" 

Теперь Freya маршрутизатор соответствует этому Uri шаблон со следующими URLs:

http://localhost/a/1?date=2015 
http://localhost/b/3?date=2013 

Однако, если я опускаю строку запроса, то шаблон Uri больше не соответствует URL-адресу. Например, следующие адреса не совпадает по шаблону:

http://localhost/a/1 
http://localhost/b/3 

Как определить Uri шаблон с помощью Фрейи с дополнительными параметрами строки запроса?

Любая помощь очень ценится, спасибо заранее.

+0

Ok, так что я не нашел именно ответ, который я искал, но нашел способ достижения результата я хотел. См. Мой ответ ниже. –

ответ

3

Я не мог найти что-нибудь в исходном коде Freya, который предлагает параметры строки запроса могут быть определены как необязательные в Uri Шаблон.

Однако, я могу определить два маршрутов может быть определен две отдельными Uri шаблоны указывая на тот же freyaMachine.

Я закончил с двумя путями, как это:

let routes = 
    freyaRouter { 
     route (Methods [GET]) "/{store}/{partition}" myMachine 
     route (Methods [GET]) "/{store}/{partition}{?date}" myMachine 
    } |> FreyaRouter.FreyaPipeline 
Смежные вопросы