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"))并且没有使用description生成DataclassWithDescription.__pydantic_model__.schema_json()输出。
发布于 2022-01-03 17:35:37
我发现这很管用(Pydantic‘的注释用法),
from pydantic import Field
from pydantic.dataclasses import dataclass
@dataclass
class DataclassWithDescription:
a_field: int = Field(description="descr text")https://stackoverflow.com/questions/66241934
复制相似问题