Пользовательский пользовательский интерфейс FASTAPI Swagger показывает псевдоним вместо оригинального имени поля в схемеPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Пользовательский пользовательский интерфейс FASTAPI Swagger показывает псевдоним вместо оригинального имени поля в схеме

Сообщение Anonymous »

У меня есть следующий код FASTAPI с использованием Pydantic: < /p>

Код: Выделить всё

from fastapi import FastAPI
from fastapi.routing import APIRouter
from pydantic import BaseModel, Field
from typing import Optional

app = FastAPI()
router = APIRouter()

class UserSchema(BaseModel):
user_name: Optional[str] = Field(None, alias="name")

class Config:
populate_by_name = True

@router.get(
"/user",
tags=["user"],
summary="Get user",
response_model=UserSchema,
response_model_by_alias = False
)
async def get_user():
user_data = {"name": "John Doe"}
return UserSchema(**user_data).model_dump()
текущее поведение
api -ответ: (правильно)

Код: Выделить всё

{
"user_name": "John Doe"
}
Swagger ui схема ответа: (неверно - он показывает псевдоним вместо исходного имени поля) изображение

Код: Выделить всё

{
"name": "string"
}
ожидаемое поведение
Я хочу, чтобы схема ответа ui swagger (openapi) показала имя поля user_name вместо имени псевдонима .
, что я пробовал

  • < /ol>

    Код: Выделить всё

    async def get_user():
    user_data = {"name": "John Doe"}
    return UserSchema(**user_data).model_dump(by_alias=False)
    
    Добавление opulate_by_name = true в конфигурации модели Pydantic .

Код: Выделить всё

class UserSchema(BaseModel):
user_name: Optional[str] = Field(None, alias="name")

class Config:
populate_by_name = True
< /code>

 Настройка response_model_by_alias = false < /code> в маршруте < /li>
< /ol>
@router.get(
"/user",
tags=["user"],
summary="Get user",
response_model=UserSchema,
response_model_by_alias = False
)
Как я могу настроить Fastapi, чтобы сделать Swagger UI отображать имя поля (user_name) вместо псевдонима (имя)?

Подробнее здесь: https://stackoverflow.com/questions/793 ... nse-schema
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»