FastAPI(7)- 详解 Path(上)

简介: FastAPI(7)- 详解 Path(上)

前言


 

Path


可以为路径参数添加额外的校验和元数据,跟 Query 的参数是一毛一样的

image.png


元数据


Path 也可以添加元数据相关信息,这些信息将包含在生成的 OpenAPI 中,并由文档用户界面和外部工具使用

 

四种元数据参数

# 别名
alias: Optional[str] = None
# 标题
title: Optional[str] = None
# 描述
description: Optional[str] = None
# 是否弃用
deprecated: Optional[bool] = None


实际代码

from fastapi import FastAPI, Path
from typing import Optional
import uvicorn
app = FastAPI()
# 元数据
@app.get("/items/{item_id}")
async def read_items(
        item_id: Optional[str] = Path(
            default=...,
            min_length=2,
            max_length=50,
            regex="^菠萝$",
            title="标题",
            description="很长很长的描述",
            deprecated=True,
        )
):
    return {"item_id": item_id}


校验成功的请求结果

image.png


校验失败的请求结果

image.png

查看 Swagger API 文档


image.png


重点

  • 路径参数始终是必需的,因为它必须是路径的一部分
  • 所以,Path 的 default 参数值必须设为 ...

 

元数据不应该使用 alias


因为路径参数并不能通过 参数名=value 的形式来传值,所以没有办法通过 alias = value 的方式给别名传值,最终将会报错

@app.get("/alias/{item_id}")
async def read_items(
        item_id: Optional[str] = Path(
            default=...,
            alias="item_alias"
        )
):
    return {"item_id": item_id}



请求结果

image.png

image.png

相关文章
|
API Python
FastAPI(7)- 详解 Path(下)
FastAPI(7)- 详解 Path(下)
136 0
FastAPI(7)- 详解 Path(下)
FastAPI(4)- 路径参数 Path Parameters (下)
FastAPI(4)- 路径参数 Path Parameters (下)
155 0
FastAPI(4)- 路径参数 Path Parameters (下)
FastAPI(4)- 路径参数 Path Parameters (上)
FastAPI(4)- 路径参数 Path Parameters (上)
176 0
FastAPI(4)- 路径参数 Path Parameters (上)
|
NoSQL 测试技术 Redis
FastAPI(八十四)实战开发《在线课程学习系统》--接口测试(下)
FastAPI(八十四)实战开发《在线课程学习系统》--接口测试(下)
FastAPI(八十四)实战开发《在线课程学习系统》--接口测试(下)
|
测试技术 数据安全/隐私保护
FastAPI(八十四)实战开发《在线课程学习系统》--接口测试(上)
FastAPI(八十四)实战开发《在线课程学习系统》--接口测试(上)
|
存储 测试技术 数据安全/隐私保护
FastAPI(八十三)实战开发《在线课程学习系统》--注册接口单元测试
FastAPI(八十三)实战开发《在线课程学习系统》--注册接口单元测试
FastAPI(八十三)实战开发《在线课程学习系统》--注册接口单元测试
FastAPI(八十二)实战开发《在线课程学习系统》接口开发-- 课程上架下架
FastAPI(八十二)实战开发《在线课程学习系统》接口开发-- 课程上架下架
|
NoSQL Redis 数据库
FastAPI(八十一)实战开发《在线课程学习系统》接口开发-- 推荐课程列表与课程点赞
FastAPI(八十一)实战开发《在线课程学习系统》接口开发-- 推荐课程列表与课程点赞
FastAPI(八十)实战开发《在线课程学习系统》接口开发-- 课程列表
FastAPI(八十)实战开发《在线课程学习系统》接口开发-- 课程列表
FastAPI(七十九)实战开发《在线课程学习系统》接口开发-- 加入课程和退出课程
FastAPI(七十九)实战开发《在线课程学习系统》接口开发-- 加入课程和退出课程