响应模型、异常与序列化
FastAPI 与异步接口开发#Python全栈#第十二阶段#FastAPI 与异步接口开发#响应模型、异常与序列化约 775 字 · 2 分钟阅读
追问显示点击任意追问卡片可收起 / 展开
response_model 与返回类型注解可以怎样定义输出?
追问 输出校验、转换、字段过滤与文档各承担什么作用?同时配置时怎样核对实际采用的模型?
返回数据不符合响应模型时,会产生什么问题?
追问 缺失必需字段与类型错误为什么属于服务端输出缺陷,而不是客户端输入错误?如何保留内部定位信息?
为什么输入模型与公开输出模型通常需要分开?
追问 创建用户、修改用户和展示用户各需要哪些字段?怎样避免密码哈希或内部审核字段意外进入响应?
日期、UUID、Decimal 与枚举怎样进入 JSON 响应?
追问 序列化器、模型配置和 jsonable_encoder 各在何处使用?金额与大整数怎样保持前后端约定的精度?
返回 Python 数据与返回已编码 JSON 字符串有什么区别?
追问 把 model_dump_json 的字符串当作普通返回值可能怎样发生二次编码?如何确认实际响应内容?
直接返回 Response 或 JSONResponse 会改变哪些处理?
追问 response_model 是否仍自动校验和过滤该响应?业务代码需要自行负责哪些编码、状态和头字段?
HTTPException 应怎样表达可预期的 HTTP 错误?
追问 为什么应抛出而不是把异常对象当普通数据返回?detail、状态和必要响应头如何约定?
请求校验错误与业务错误如何统一展示而保持区别?
追问 默认校验错误的 loc、msg 和类型怎样帮助定位?自定义处理器如何避免把程序缺陷全部伪装成 422?
怎样设置创建成功、无内容成功和额外错误响应?
追问 status_code、Response 和文档中的 responses 各负责什么?声明错误文档是否会自动执行对应业务逻辑?
文件与流式响应为什么需要额外考虑资源生命周期?
追问 响应开始后发生异常能否随意改为普通 JSON 错误?流消费所需资源如何与依赖清理时机配合?
核对资料: FastAPI 响应模型。