python - FastAPI - 未填充 ENUM 类型模型

标签 python swagger openapi fastapi pydantic

下面是我的 fastAPI 代码

from typing import Optional, Set

from fastapi import FastAPI
from pydantic import BaseModel, HttpUrl, Field
from enum import Enum

app = FastAPI()


class Status(Enum):
    RECEIVED = 'RECEIVED'
    CREATED = 'CREATED'
    CREATE_ERROR = 'CREATE_ERROR'


class Item(BaseModel):
    name: str
    description: Optional[str] = None
    price: float
    tax: Optional[float] = None
    tags: Set[str] = []
    status: Status = None


@app.put("/items/{item_id}")
async def update_item(item_id: int, item: Item):
    results = {"item_id": item_id, "item": item}
    return results
下面是生成的 swagger 文档。状态未显示。我是 pydantic 的新手,我不确定如何在文档中显示状态
enter image description here

最佳答案

创建 Status 类通过从 继承str Enum

class Status(str, Enum):
    RECEIVED = 'RECEIVED'
    CREATED = 'CREATED'
    CREATE_ERROR = 'CREATE_ERROR'
引用文献
  • Working with Python enumerations--(FastAPI doc)
  • [BUG] docs don't show nested enum attribute for body--(Issue #329)
  • 关于python - FastAPI - 未填充 ENUM 类型模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64160594/

    相关文章:

    swagger - 在 Swagger 中创建我自己的类型

    python - 如何正确拆分此字符串列表?

    python - 根据无序日期在 pandas 中创建日期时间对象

    python - 在学习期间将数据添加到自动编码器中的解码器

    python - Python 中带键的 sort_values()

    scala - Swagger 将 Option[Int] 建模为 Object,而 Option[String] 被正确建模为字符串

    express - 如何在 Swagger 中定义包含复杂对象数组的示例请求正文?

    mocking - OpenAPI 3.0 模拟生成器

    openapi - 在 OpenAPI 3 中,如何记录请求时需要具有指定值的 Accept header 才能成功调用 API?

    java - Swagger codegen to Java Spring 从二进制格式的 OpenAPI 组件生成不正确的文件响应实体