官方文档是用 response_model,但感觉 这个好像不是很灵活。
我想要返回的统一格式, 把 pydantic 的验证错误也包进自己定义的格式里
pydantic 默认数据返回格式格式:
{
"email": "user52@example.com",
"id": 6,
"is_active": true,
"item": []
}
pydantic 默认验证错误格式:
{
"detail": [
{
"loc": [
"body",
"user",
"email"
],
"msg": "value is not a valid email address",
"type": "value_error.email"
}
]
}
这种返回格式缺乏规范性,后面调用接口时就非常乱了。
我想要返回的统一格式统一成下面这样,方便调用和判断错误
{
"success": true,
"time": "1588633541",
"errors": "",
"result": {
"username": "bigbig",
"created_at": "2020-05-04 21:57:22.815393"
}
}
{
"success": false,
"time": "1588633541",
"errors": {
"msg": "Authorization failed",
"errors": {"detail": "wrong user name or password"}
},
"result": ""
}
{
"success": false,
"time": "1588633541",
"errors": {"detail": [
{
"loc": [
"body",
"user",
"email"
],
"msg": "value is not a valid email address",
"type": "value_error.email"
}
]},
"result": ""
}
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.