次のような Hello World エンドポイントを持つ Web サービスがあります。
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}
このルートは、次の URL で機能するはずです。
- http://localhost:8083/hello/FooBar この場合、lang は デフォルト値の「en-GB」に設定する必要があります。
- http://localhost:8083/hello/FooBar?lang=en-GB
- http://localhost:8083/hello/FooBar?lang=de-DE
しかし、それはうまくいかないはずです
http://localhost:8083/hello/FooBar/en-GB
オプションのパラメーターは、パスではなく、クエリ パラメーター文字列でのみ許可する必要があります。
Suaveでこれを達成する方法はありますか?