gpt4 book ai didi

json - 如何在不为整个应用程序重新定义 `errorHandler` 的情况下从 JSON 处理程序发出 JSON 错误?

转载 作者:行者123 更新时间:2023-12-01 15:14:42 26 4
gpt4 key购买 nike

我正在尝试构建一个包含 JSON 服务的站点。所以我想对不同的处理程序进行不同的错误处理。例如,notFound必须在 Handler Html 中返回 HTML“未找到”和 JSON 值 {"error": "not found"}Handler Value .我怎样才能实现它?

即使我使用自己的 notFoundJson , Yesod 的 get404不会,即使在 Handler Value 中也返回 HTML .

  1. 我应该在 errorHandler 中获取处理程序的返回类型吗? ?
  2. 我应该做 /api一个子站点并覆盖 errorHandler为了它?
  3. 我应该再做一个 yesod,有自己的特定 errorHandler , 并将其连接到主 yesod 作为子站点?

最佳答案

简单的解决方案:您无需执行任何操作。这是客户关心的问题。

根据 defaultErrorHandler 实现,客户端接收 JSON 错误的正确方法似乎是提供 HTTP header Accept: application/json 或查询参数 ? _accept=application/json 在请求中。

defaultErrorHandler 本身提供了两种表示:一种用于text/html 客户端,一种用于application/json 客户端。默认为前者。

更通用的解决方案: 添加 WAI middleware附加 HTTP header Accept: application/json 或查询参数 ?_accept=application/json 用于特定的 url。

关于json - 如何在不为整个应用程序重新定义 `errorHandler` 的情况下从 JSON 处理程序发出 JSON 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24909148/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com