Skip to content

Instantly share code, notes, and snippets.

@Slesa
Last active August 20, 2021 13:46
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Slesa/a722acd25168985313bb8e56de23d712 to your computer and use it in GitHub Desktop.
Save Slesa/a722acd25168985313bb8e56de23d712 to your computer and use it in GitHub Desktop.
Return F# list as web result
type KeyValues = Map<string,string>
type DataList = {
Articles: KeyValues list option
}
let dataList : DataList = {
Articles = Option.None
}
let deliverList (list: KeyValues list option) (listName: string) =
let values = match list with
| None -> ReadDataFile listName
| Some data -> data
let answer = JsonSerializer.Serialize values
answer |> text
let deliverData listName =
match listName with
| "articles" ->
deliverList dataList.Articles "articles"
| _ -> setStatusCode 404 >=> text $"{listName} not Found" ]
let webApp =
choose [
GET >=>
choose [
routef "/data/%s" deliverData
]
setStatusCode 404 >=> text "Not Found" ]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment