如何使用 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)中的特定参数值? [复制] 的相关文章

随机推荐

  • 检测 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 用户就不必猜测它们 如何使这些值显示在文