Ho un servizio web con un endpoint ciao mondo come questo:Percorsi con i parametri facoltativi a 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
Ora vorrei aggiungere un endpoint aggiuntivo in grado di gestire le rotte in questo modo: http://localhost:8083/hello/{name}?lang={lang}
questo percorso dovrebbe funzionare per i seguenti URL:
- http://localhost:8083/hello/FooBarIn questo caso lang dovrebbe essere impostato ad un valore predefinito di "it-IT"
- http://localhost:8083/hello/FooBar?lang=en-GB
- http://localhost:8083/hello/FooBar?lang=de-DE
ma non dovrebbe funzionare per
http://localhost:8083/hello/FooBar/en-GB
Parametri opzionali dovrebbe essere consentito solo in una query stringa di parametri e non nel percorso.
Qualche idea su come ottenere questo risultato con Suave?
Cool, grazie. Non ero sicuro se ci fosse un modo più semplice di farlo con Suave o se dovessi gestire personalmente il parametro opzionale. Sarebbe bello a un certo punto configurare i valori predefiniti ei parametri facoltativi come parte della registrazione del percorso in qualche modo, ma per ora questo fa il lavoro! – dustinmoris