在 F# 中使用 Suave 返回自定义错误

returning a custom error with Suave, in F#

在 Suave 文档中,我在哪里可以找到 return 带有纯文本错误消息的 http 错误?

我一直在寻找,但我无法通过文档找到我的方法,因为它的结构是到处都是示例。

我想做的是:

if thingsGoWell then
    OK myResult
else
    ERROR someHttpStatusCode myString

我知道我可以使用预设,比如

INTERNAL_ERROR "hello"

但我希望能够传递我自己的 HttpStatusCode。

我才刚刚开始使用 Suave,到目前为止我喜欢这些概念,但我真的很难适应文档风格。

我认为您正在寻找基本的 response 函数:

val response : statusCode:HttpCode -> content:byte [] -> WebPart

文档是 here。用法是这样的:

response HTTP_501 (UTF8.bytes message)

我同意你的看法,即 Suave 文档不是很好。就个人而言,我经常通过简单地查看源代码来回答这样的问题,即here。我有一个克隆和构建的本地副本。其实很简单。

例如,在这种情况下,我搜索了“INTERNAL_ERROR”,因为你给出了它作为提示,并找到了这个实现:

let internal_error arr = response HTTP_500 arr
let INTERNAL_ERROR message = internal_error (UTF8.bytes message)

据此,我能够为您的问题构建一个答案,然后还搜索了相关文档。