Haskell 是的,从JSON创建字符串键

Haskell 是的,从JSON创建字符串键,haskell,yesod,persist,Haskell,Yesod,Persist,我有两个非常简单的模型定义: Page json uuid Text title Text UniquePageUuid uuid Primary uuid Link uuid Text href Text pageId PageId Maybe Primary uuid 我想构建一个JSON端点来更新链接模型中的pageId: data ApiLink { linkPageId :: PageId } deriving (Generic) instance

我有两个非常简单的模型定义:

Page json
  uuid Text
  title Text
  UniquePageUuid uuid
  Primary uuid

Link
  uuid Text
  href Text
  pageId PageId Maybe
  Primary uuid
我想构建一个JSON端点来更新链接模型中的pageId:

data ApiLink { linkPageId :: PageId } deriving (Generic)

instance FromJSON ApiLink
我的处理程序看起来像这样:

patchApiLinkR :: LinkId -> Handler Value
patchApiLinkR linkId = do
  jsonData <- requireJsonBody :: Handler ApiLink
  link <- runDB $ update linkId [LinkPageId =. (linkPageId jsonData)]
  returnJson link
link <- runDB $ update linkId [LinkPageId =. (Just $ linkPageId jsonData)]
patchApiLinkR::LinkId->Handler值
patchApiLinkR linkId=do

jsonData您必须稍微更改db查询,如下所示:

patchApiLinkR :: LinkId -> Handler Value
patchApiLinkR linkId = do
  jsonData <- requireJsonBody :: Handler ApiLink
  link <- runDB $ update linkId [LinkPageId =. (linkPageId jsonData)]
  returnJson link
link <- runDB $ update linkId [LinkPageId =. (Just $ linkPageId jsonData)]

link@Alebon别担心,每个人都会这样!