FastAPI中未使用请求模型时如何设置以实现请求验证?
FastAPI 请求模型未使用时的验证处理
你的理解完全正确:如果省略mint: MintRequest这个参数,FastAPI确实不会对请求进行验证——因为FastAPI是通过函数参数的类型注解来识别需要验证的请求模型的,没有这个注解,框架就不知道该用哪个规则去校验请求体。
如果不想在函数逻辑里使用这个变量,但又要保留请求验证,有两种简单的处理方式:
用下划线作为变量名:这是Python里约定俗成的“不使用该变量”的写法,既能触发FastAPI的验证逻辑,又能避免IDE提示“未使用变量”的警告:
@authenticated.post("/mint/", response_model=MintResponse) async def create_item(_: MintRequest): return MintResponse(test="test")结合
Depends声明:如果想更明确地表示这是一个需要解析的请求体,也可以用Depends包裹模型(效果和直接写参数一致,但写法更显式):from fastapi import Depends @authenticated.post("/mint/", response_model=MintResponse) async def create_item(_: MintRequest = Depends()): return MintResponse(test="test")
核心逻辑不变:只要函数参数里保留了MintRequest的类型注解,FastAPI就会自动完成请求体的解析和验证,验证失败时会返回标准的422错误响应,和变量是否被函数逻辑使用无关。
内容的提问来源于stack exchange,提问作者WhatTheWhat
相关产品推荐
相关产品推荐

