文章目录

  • 1. Pydantic schema_extra
  • 2. Field 的附加参数
  • 3. Body 额外参数
  • 4. Cookie 参数
  • 5. Header 参数
    • 5.1 重复的 headers

learn from https://fastapi.tiangolo.com/zh/tutorial/schema-extra-example/

添加一个将在文档中显示的 example

1. Pydantic schema_extra

from typing import Optional
from fastapi import FastAPI
from pydantic import BaseModel
app = FastAPI()class Item(BaseModel):name: strdescription: Optional[str] = Noneprice: floattax: Optional[float] = Noneclass Config:schema_extra = {"example": {"name": "michael","description": "a learner","price": 100.0, "tax": 0.1}}@app.put("/items/{item_id}")
async def update_item(item_id: int, item: Item):res = {"item_id": item_id, "item": item}return res


来看看文档:http://127.0.0.1:8000/docs#/default/update_item_items__item_id__put


其中: class Config:
schema_extra = {
example”: {

加黑的字符,大小写必须完全一致,应该是内置的字段,否则无法显示例子

2. Field 的附加参数

  • Field(None, example=xxx)
from typing import Optional
from fastapi import FastAPI
from pydantic import BaseModel, Field
app = FastAPI()class Item(BaseModel):name: str = Field(..., example="michael")description: Optional[str] = Field(None, example="handsome")price: float = Field(..., example=34.5)tax: Optional[float] = Field(None, example=0.1)@app.put("/items/{item_id}")
async def update_item(item_id: int, item: Item):res = {"item_id": item_id, "item": item}return res

3. Body 额外参数

可以通过传递额外信息给 Field 同样的方式操作Path, Query, Body

from typing import Optional
from fastapi import FastAPI, Body
from pydantic import BaseModel, Field
app = FastAPI()class Item(BaseModel):name: strdescription: Optional[str] = Noneprice: floattax: Optional[float] = None@app.put("/items/{item_id}")
async def update_item(item_id: int, item: Item = Body(...,example = {  # 加入 example 参数"name": "michael","description": "a learner","price": 100.1, "tax": 0.1})
):res = {"item_id": item_id, "item": item}return res

4. Cookie 参数

声明 Cookie 参数的结构与声明 Query 参数和 Path 参数时相同。

第一个值是参数的默认值,同时也可以传递所有验证参数或注释参数,来校验参数

你需要使用 Cookie 来声明 cookie 参数,否则 参数将会被解释为 查询参数

from typing import Optional
from fastapi import Cookie, FastAPIapp = FastAPI()
@app.get("/items/")
async def read_items(ads_id: Optional[str] = Cookie(None)):return {"ads_id": ads_id}

使用 postman 测试



5. Header 参数

大多数标准的 headers 用 "连字符" 分隔,也称为 "减号" (-)

但是像 user-agent 这样的变量在Python中是无效的。

因此, 默认情况下, Header 将把参数名称的字符从下划线 (_) 转换为连字符 (-) 来提取并记录 headers

  • 如果需要禁用 下划线到连字符 的自动转换,设置 Header 的参数 convert_underscores 为 False
  • 注意:一些 HTTP 代理和服务器不允许使用带有下划线的 headers
from typing import Optional
from fastapi import Cookie, FastAPI, Headerapp = FastAPI()
@app.get("/items/")
async def read_items(my_agent: Optional[str] = Header(None)):return {"my_agent": my_agent}

  • 禁用下划线自动转换 strange_header: Optional[str] = Header(None, convert_underscores=False)
from typing import Optional
from fastapi import Cookie, FastAPI, Headerapp = FastAPI()
@app.get("/items/")
async def read_items(my_agent: Optional[str] = Header(None, convert_underscores=False)):return {"my_agent": my_agent}

5.1 重复的 headers

可以通过一个Python list 的形式获得 重复header 的 所有值

from typing import Optional, List
from fastapi import Cookie, FastAPI, Headerapp = FastAPI()
@app.get("/items/")
async def read_items(x_token: Optional[List[str]] = Header(None)):return {"x_token value:": x_token}

fastapi 模式的额外信息,示例 / Cookie参数 / Header参数相关推荐

  1. js java cookie_JS 打开一个模式窗口,使用Cookie传递一个参数

    页面A,加载后打开一个模式窗口,设置一个参数,然后自己关闭 function fullScreen(){ loadpopup(); var width = screen.width-10; var h ...

  2. 什么是请求参数、表单参数、url参数、header参数、Cookie参数?一文讲懂

    最近在工作中对 http 的请求参数解析有了进一步的认识,写个小短文记录一下. 回顾下自己的情况,大概就是:有点点网络及编程基础,只需要加深一点点对 HTTP 协议的理解就能弄明白了. 先分享一个小故 ...

  3. fastapi 响应模型 / 响应状态码 / 表单参数

    文章目录 1. response_model 2. 添加输出模型 3. 响应模型编码参数 4. response_model_include 和 response_model_exclude 5. 代 ...

  4. HTTP 请求中的Header 参数

    HTTP 请求中的Header 参数 1.Requests Header | Http Header Header 解释 示例 Accept 指定客户端能够接收的内容类型 Accept: text/p ...

  5. 某乎搜索接口header参数x-zse-96、x-zst-81逆向分析

    文章目录 前言 一.抓包分析 二.参数解析 1.加密定位 2.参数分析 总结 前言 随缘发文~某乎搜索接口header参数x-zse-96.x-zst-81 JS逆向分析.本文章仅供学习研究,如若侵犯 ...

  6. php curl 设置请求头,php的curl请求如何设置header参数

    php的curl请求设置header参数的方法:首先使用[CURLOPT_HTTPHEADER]设置HTTP头字段的数组:然后使用一个默认只包含必要的头部字段的HTTP头. php的curl请求设置h ...

  7. java memento_Java备忘录(Memento)模式实现的示例代码

    Java备忘录(Memento)模式实现的示例代码 /** * 数据对象 * @author stone * */ public class DataState { private String ac ...

  8. linux curl命令 post,linux环境下使用curl命令设置Header参数发送post请求

    linux环境下使用curl命令设置Header参数发送post请求 linux环境下使用curl命令设置Header参数发送post请求 案例1:curl命令发送post请求并且获取返回结果以及响应 ...

  9. android 添加头参数,Retrofit添加header参数的几种方法

    (1)使用注解的方式 添加一个Header参数 publicinterfaceUserService { @Headers("Cache-Control: max-age=640000&qu ...

最新文章

  1. lg g7 android9,随着Android 11的临近 LG G7 ThinQ在其最后一家美国运营商处获得了Android 9更新...
  2. Java –什么是瞬态字段?
  3. C与C++的区别简答
  4. This关键字的一些更新的理解
  5. Python_代码练习_写一个判断是否为小数的函数
  6. 实现透明防火墙的必备知识-Bridge Filter半景
  7. (转)专访Palantir创始人:如何接二连三创出独角兽公司?
  8. 妨碍编译器优化的因素
  9. 深入理解jvm虚拟机一
  10. Javaweb —— JSP技术
  11. EfficientDeRainy:一种高效的图像去雨雾算法
  12. App如何生成下载二维码?扫码即可下载App
  13. 联想dns服务器错误怎么修复,dns错误怎么办,教您dns错误怎么解决
  14. 通俗易懂讲清502、503、504是什么
  15. 深度学习目标检测模型综述
  16. 百度地图:新的瓦片生成工具来了
  17. python汉字转拼音首字母_python获取一组汉字拼音首字母的方法
  18. 【参考】bike+需求影响
  19. fp16与fp32简介与试验
  20. Qt-OpenCV学习笔记--人脸识别

热门文章

  1. mvn 打包_Spark源码打包编译的过程
  2. 解决:build_attrs() takes at most 2 arguments (3 given)
  3. Hbase2.0版本安装教程
  4. MATLAB 长度和像素_Matlab中短时傅里叶变换 spectrogram和stft的用法
  5. 数据结构:将二叉搜索树转换成一个排序的双向链表
  6. TCP相关的面试内容整理
  7. html奇淫技巧 2 教你如何进行图文环绕布局 原创
  8. 使用spring的@autowired注解,无法实例化dao
  9. [haoi2011]防线修建
  10. GJM :Sql 各种语句 以及函数 [转载]