【发布时间】:2021-02-17 12:25:15
【问题描述】:
Pydantic 支持生成 OpenApi/jsonschema 模式。当使用 Pydantic 的 BaseModel 定义模型时,可以将 description 和 title 添加到生成的 json/yaml 规范中。
class DescriptionFromBasemodel(BaseModel):
with_desc: int = Field(
42,
title='my title',
description='descr text',)
这会转移到架构中:DescriptionFromBasemodel.schema_json()
{
... schema title, description, type top-level ...
"properties": {
"with_desc": {
"title": "my title",
"description": "descr text",
"type": ...
...
但是,我无法确定如何使用pydantic.dataclasses 来检测它,我的应用程序必须使用它才能在其他地方很好地播放。您可以将 metadata 添加到 stdlib dataclass Field(...)s,但 pydantic 不使用它们(?)
from pydantic.dataclasses import dataclass
from dataclasses import field
@dataclass
class DataclassWithDescription:
a_field: int = field(metadata=dict(
description="descr text"))
并且没有使用DataclassWithDescription.__pydantic_model__.schema_json() 生成输出description
【问题讨论】:
标签: python-3.x swagger openapi pydantic