1

我正在为 Yesod 中的资源编写 REST API。我有一个 POST 方法,它应该尝试创建给定的资源,如果成功返回 201 和新创建资源的 ID。例如,

postResourceR :: Handler String
postResourceR = do
  id <- runDB $ insert Resource
  sendResponseStatus status201 id -- DOES NOT COMPILE

这是我得到的错误,这很简单:

No instance for (ToTypedContent (Key Resource))
  arising from use of 'sendResponseStatus'

我知道我想要一些东西ToTypedContent,但我找不到任何方法从KeyDatabase.Persist.Class 中得到它。任何帮助将不胜感激。

编辑:

这是实际资源的定义:

Notification
    title Text
    content Text
    icon Text Maybe
    action Text Maybe 
    created UTCTime
    updated UTCTime
    deriving Show
4

1 回答 1

5

假设您使用的是 SQL 后端,您可以使用fromSqlKey。更一般地,您可以使用toBackendKey

于 2015-04-02T07:58:02.377 回答