У меня есть веб-сервис с привет мир конечной точки, как это:Маршруты с необязательными параметрами в Suave
let app =
choose [
GET >=>
choose [
path "/hello" >=> OK "Hello World!"
pathScan "/hello/%s" (fun name -> OK (sprintf "Hello World from %s" name)) ]
NOT_FOUND "Not found" ]
[<EntryPoint>]
let main argv =
startWebServer defaultConfig app
0
Теперь я хотел бы добавить дополнительную конечную точку, которая может обрабатывать маршруты, как это: http://localhost:8083/hello/{name}?lang={lang}
Этот маршрут должен работать по следующим адресам:
- http://localhost:8083/hello/FooBarВ этом случае языки должны быть установлены значение по умолчанию "ан-ГБ"
- http://localhost:8083/hello/FooBar?lang=en-GB
- http://localhost:8083/hello/FooBar?lang=de-DE
, но он не должен работать на
http://localhost:8083/hello/FooBar/en-GB
Дополнительные параметры должны быть разрешены только в запросе строка параметров, а не путь.
Любая идея, как достичь этого с помощью Suave?
Прохладный, спасибо. Я не был уверен, был ли более простой встроенный способ сделать это с Suave или мне пришлось самостоятельно обрабатывать необязательный параметр. Было бы неплохо в какой-то момент настроить значения по умолчанию и необязательные параметры как часть регистрации маршрута каким-то образом, но на данный момент это делает работу! – dustinmoris