我正在使用Yesod编写
JSON RESTFul服务,需要实现请求验证.
因为服务接受JSON,我不能使用Yesod.Form.我喜欢 scalaz validation使用的方式,但我在Haskell中找不到这样的方法.
因为服务接受JSON,我不能使用Yesod.Form.我喜欢 scalaz validation使用的方式,但我在Haskell中找不到这样的方法.
是否有最佳实践来实现验证,允许回答结构化错误消息,如下所示:
请求
{ "birthDate": "2017.07.14","count": "three","kind": "baz","entity": { "id": -1 } }
响应
{ "errors": { "birthDate": "Date should be less than 2014.05.25",// current date "count": "should be a number","kind": "must be one of [foo,bar]","entity": { "id": "Entity with id -1 not found" } } }
解决方法
我建议使用aeson的本机解析功能,它将同时解析传入的JSON并将其转换为Haskell数据结构.