如何使用 FastAPI 允许 OpenAPI 规范(Swagger UI)中的特定参数值? [复制]

2023-12-07

我正在阅读有关的教程路径参数验证.

我想允许字符串“a”“b”和“c”作为可能的参数值。我希望这些值显示在 OpenAPI 文档中(即FastAPI 的自动文档),这样 API 用户就不必猜测它们。如何使这些值显示在文档中?

这是我的实现:

from fastapi import FastAPI, HTTPException

app = FastAPI()

parameters = ["a", "b", "c"]

@app.get("/endpoint/{parameter}")
def endpoint(parameter: str):
    if parameter not in parameters:
        raise HTTPException(status_code=400, detail="parameter must be a, b, or c")
    return {"parameter": parameter}

Option 1

你可以使用enums,通过创建一个Enum子类,如中所述FastAPI文档:

from enum import Enum

class MyParam(str, Enum):
    a= "a"
    b= "b"
    c= "c"

@app.get("/{my_param}")
def index(my_param: MyParam):
    return {"my_param": my_param}

Option 2

或者,您可以使用Literaltype,它允许您指定参数只能接受特定的Literal values:

from typing import Literal

@app.get("/{my_param}")
def index(my_param: Literal["a", "b", "c"]):
    return {"my_param": my_param}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 FastAPI 允许 OpenAPI 规范(Swagger UI)中的特定参数值? [复制] 的相关文章

  • 类的 IPython 表示

    我正在使用我创建的模块尝试 IPython 但它没有显示类对象的实际表示 相反 它显示类似的内容 TheClass module TheClass name I heavily在这个模块中使用元类 我有真正有意义的类表示 应该向用户显示 是
  • Python - 比较同一字典中的值

    我有一本字典 d Trump MAGA FollowTheMoney Clinton dems Clinton Stein FollowTheMoney Atlanta 我想删除字符串列表中的重复字符串 该字符串是键的值 对于这个例子 期望
  • 计算另一个字符串中多个字符串的出现次数

    在 Python 2 7 中 给定以下字符串 Spot是一只棕色的狗 斑点有棕色的头发 斑点的头发是棕色的 查找字符串中 Spot brown 和 hair 总数的最佳方法是什么 在示例中 它将返回 8 我正在寻找类似的东西string c
  • Gunicorn 工作人员无论如何都会超时

    我正在尝试通过gunicorn运行一个简单的烧瓶应用程序 但是无论我做什么 我的工作人员都会超时 无论是否有针对应用程序的活动 工作人员在我设置任何内容后总是会超时timeout值到 是什么导致它们超时 当我发出请求时 请求成功通过 但工作
  • 如何在 __init__ 中使用await设置类属性

    我如何定义一个类await在构造函数或类体中 例如我想要的 import asyncio some code class Foo object async def init self settings self settings setti
  • pandas DataFrame.join 的运行时间是多少(大“O”顺序)?

    这个问题更具概念性 理论性 与非常大的数据集的运行时间有关 所以我很抱歉没有一个最小的例子来展示 我有一堆来自两个不同传感器的数据帧 我需要最终将它们连接成两个very来自两个不同传感器的大数据帧 df snsr1 and df snsr2
  • 嵌套列表的重叠会产生不必要的间隙

    我有一个包含三个列表的嵌套 这些列表由 for 循环填充 并且填充由 if 条件控制 第一次迭代后 它可能类似于以下示例 a 1 2 0 0 0 0 0 0 4 5 0 0 0 0 0 0 6 7 根据条件 它们不重叠 在第二次迭代之后 新
  • 使用主题交换运行多个 Celery 任务

    我正在用 Celery 替换一些自制代码 但很难复制当前的行为 我期望的行为如下 创建新用户时 应向tasks与交换user created路由键 该消息应该触发两个 Celery 任务 即send user activate email
  • 矩形函数的数值傅里叶变换

    本文的目的是通过一个众所周知的分析傅里叶变换示例来正确理解 Python 或 Matlab 上的数值傅里叶变换 为此 我选择矩形函数 这里报告了它的解析表达式及其傅立叶变换https en wikipedia org wiki Rectan
  • GUI(输入和输出矩阵)?

    我需要创建一个 GUI 将数据输入到矩阵或表格中并读取此表单数据 完美的解决方案是限制输入表单仅允许float 例如 A 1 02 0 25 0 30 0 515 0 41 1 13 0 15 1 555 0 25 0 14 1 21 2
  • 打印包含字符串和其他 2 个变量的变量

    var a 8 var b 3 var c hello my name is var a and var b bye print var c 当我运行程序时 var c 会像这样打印出来 hello my name is 8 and 3 b
  • 在我的 Spring Boot 示例中无法打开版本 3 中的 Swagger UI

    我在 Spring Boot 示例中打开 swagger ui 时遇到问题 当我访问 localhost 8080 swagger ui 或 localhost 8080 root api name swagger ui 时出现这种错误 S
  • Java 和 Python 可以在同一个应用程序中共存吗?

    我需要一个 Java 实例直接从 Python 实例数据存储中获取数据 我不知道这是否可能 数据存储是否透明 唯一 或者每个实例 如果它们确实可以共存 都有其单独的数据存储 总结一下 Java 应用程序如何从 Python 应用程序的数据存
  • 使用 python/numpy 重塑数组

    我想重塑以下数组 gt gt gt test array 11 12 13 14 21 22 23 24 31 32 33 34 41 42 43 44 为了得到 gt gt gt test2 array 11 12 21 22 13 14
  • 嵌套作用域和 Lambda

    def funct x 4 action lambda n x n return action x funct print x 2 prints 16 我不太明白为什么2会自动分配给n n是返回的匿名函数的参数funct 完全等价的定义fu
  • 尽管我已在 python ctypes 中设置了信号处理程序,但并未调用它

    我尝试过使用 sigaction 和 ctypes 设置信号处理程序 我知道它可以与python中的信号模块一起使用 但我想尝试学习 当我向该进程发送 SIGTERM 时 但它没有调用我设置的处理程序 只打印 终止 为什么它不调用处理程序
  • 为什么 csv.DictReader 给我一个无属性错误?

    我的 CSV 文件是 200 Service 我放入解释器的代码是 snav csv DictReader open screennavigation csv delimiter print snav fieldnames 200 for
  • 如何以正确的方式为独立的Python应用程序制作setup.py?

    我读过几个类似的主题 但还没有成功 我觉得我错过或误解了一些基本的事情 这就是我失败的原因 我有一个用 python 编写的 应用程序 我想在标准 setup py 的帮助下进行部署 由于功能复杂 它由不同的 python 模块组成 但单独
  • 制作一份 Python 文档的 PDF 文件

    Python 官方网站提供 PDF 文档下载 但它们是按章节分隔的 我下载了源代码并构建了 PDF 文档 这些文档也是单独的 PDF 我怎么能够从源代码中的 Makefile 构建一个 PDF 文件 我认为这样阅读起来会更方便 如果连接单独
  • 如何在Python脚本中从youtube-dl中提取文件大小?

    我是 python 编程新手 我想在下载之前提取视频 音频大小 任何 YouTube 视频 gt gt gt from youtube dl import YoutubeDL gt gt gt url https www youtube c

随机推荐

  • 检测 iOS 应用程序使用的语言

    如何检测当前应用程序的语言 我不是在谈论NSLocale用户偏好 在我的应用程序中 当前支持两种语言 默认的 en 和特定的 it 我只是想知道哪一个正在实际使用 如果相关的话 作为进一步的解释 我将通过仅针对两种支持的语言的 Web 服务
  • 使用 PHAsset 获取用户照片库时如何分页

    我问同样的问题here我不明白如何实施解决方案 我尝试过以下方法 fileprivate func fetchPhotos indexSet IndexSet let allPhotos PHAsset fetchAssets with i
  • 从 Java BitSet 中随机选取 n 位中的 k 位

    如何准确挑选k来自 a 的位Java位集长度m with n位打开 其中k n m Example input m 20 n 11 Example output k 3 天真的方法 选择一个随机数0 i m 1 如果在输入端打开但在输出端未
  • WPF 数据绑定未更新?

    我有一个项目 我将复选框的 IsChecked 属性与代码隐藏中的 get set 绑定 但是 当应用程序加载时 由于某种原因它不会更新 出于好奇 我将其精简到最基本的内容 如下所示 using statements namespace N
  • 如何在画布上绘制平滑的线条而不清除它?

    I have a canvas that is adding dynamically to the page on on load I want to draw user s mouse path on the canvas but I f
  • mxGraph:使用 XML 创建图表

    我正在尝试从 xml 文件创建图表 我的 JavaScript 代码是 function loadXML console log Inside loadXML var doc mxUtils parseXml
  • 在 C++ 类中初始化数组和可修改的左值问题

    我有一个基本的 C 类 标题如下所示 pragma once class DataContainer public DataContainer void DataContainer void int getAgeGroup void int
  • Pandas 比较下一行

    我有一个像这样的数据框 d d z Q8 Q8 Q7 Q9 Q9 d t 10 30 10 31 10 38 10 40 10 41 d qty 20 20 9 12 12 我想比较第一行和第二行 数量与下一行相同并且 下一行中的 t 更大
  • 使用 CSS 将图像水平居中

    我正在尝试使用 css 将图像水平居中 我使用以下 HTML 代码在屏幕上显示我的图像 div class loading invisible img class loading src logo png div 我正在裁剪图像 因为我只想
  • Gzip 不工作,服务器 2012,IIS 8

    在 Windows Server 2012 标准 上的 IIS 8 上激活 Gzip 时出现问题 所以我激活了Windows功能中的压缩 我选中了 IIS 中的两个复选框 压缩 动态和静态 但仍然没有可用的 Gzip 但是 在我的本地主机
  • 使用python分割多页tiff图像

    我有一个功能可以分割多页 tiff from PIL import Image ImageSequence im Image open Sample tiff for i page in enumerate ImageSequence It
  • 如何编码Realm的List<>类型

    我正在尝试将 Realm 数据库编码为 JSON 一切正常 除了List lt gt 编码 所以我的问题是 你会如何编码List lt gt 因为List不符合可编码更近可解码协议 现在我正在这样做 objcMembers class Us
  • 动态 ng-init 变量 - Angularjs

    coffee FooCtrl gt scope products Product query html div div div class slideshow img div div 我想做这样的 但是ng init images prod
  • 在 AJAX 风格 jQuery UI 选项卡中加载的 jQuery UI 对话框窗口

    AJAX 选项卡工作得非常好 这部分非常简单 但是 让 AJAX UI 对话框模式窗口触发链接并不成功 任何对此的帮助将不胜感激 没有什么比那个男人更容易的了 试试这个
  • 使用 Photoshop JavaScript 执行系统命令行提示符

    我正在使用 Photoshop 使用动作集自动处理图像 我已将 javascript 添加到我的操作集之一 我想使用 javascript 发出 Windows 命令行提示符 这可能吗 有某种类型的system exec 函数来做到这一点
  • 使用会话测试 Rails 控制器

    在我的应用程序中 我有一个会话控制器 现在我想测试用户控制器 只有登录后才能访问该控制器 我的问题是如何伪造会话 我已经尝试了很多 所以我希望你现在可以帮助我 应用控制器 helper method current user def aut
  • 使用AsyncTask加载位图图像

    当有人使用我的应用程序时 我试图在后台加载图像 我写的逻辑是这样的 public class ImageLoader extends AsyncTask
  • 为什么时区感知日期时间的 tzinfo 不等于时区?

    gt gt gt import pytz gt gt gt tz pytz timezone America Chicago gt gt gt dt naive datetime year 2017 month 6 day 6 gt gt
  • 如何使用 GWT EventBus

    我想知道如何使用EventBus或者是否有一些更好的解决方案来发送Event通过该项目 Widget1 has a Button Widget2 has a Label 当我按下按钮时 它应该会改变 这些小部件位于DockLayout Ro
  • 如何使用 FastAPI 允许 OpenAPI 规范(Swagger UI)中的特定参数值? [复制]

    这个问题在这里已经有答案了 我正在阅读有关的教程路径参数验证 我想允许字符串 a b 和 c 作为可能的参数值 我希望这些值显示在 OpenAPI 文档中 即FastAPI 的自动文档 这样 API 用户就不必猜测它们 如何使这些值显示在文