Как настроить openapi-generator-cli для включения значений None для полей, допускающих значение NULL, в моделях PydanticPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как настроить openapi-generator-cli для включения значений None для полей, допускающих значение NULL, в моделях Pydantic

Сообщение Anonymous »

Я использую openapi-generator-cli для создания клиентов Python, и он отлично работает, за исключением определенного сценария. Мне нужно отправить запросы во внешнюю службу, в которую должны быть включены все поля, допускающие значение NULL, даже если их значения равны None. Когда я создаю клиент с помощью openapi-generator-cli, он создает модели с помощью метода to_dict следующим образом:
def to_dict(self) -> Dict[str, Any]:
"""Return the dictionary representation of the model using alias.

This has the following differences from calling pydantic's
`self.model_dump(by_alias=True)`:

* `None` is only added to the output dict for nullable fields that
were set at model initialization. Other fields with value `None`
are ignored.
"""
excluded_fields: Set[str] = set([
])

_dict = self.model_dump(
by_alias=True,
exclude=excluded_fields,
exclude_none=False,
)

Есть ли способ настроить openapi-generator-cli, чтобы разрешить включение значений None для полей, допускающих значение NULL, в метод to_dict? Это будет выполнено, если ignore_none=True, но я не нашел для этого какой-либо директивы для openapi-generator.
Предположим, у меня есть такой словарь Python:
request_data = {
"account": None,
"lastName": "Doe",
"firstName": "Jon",
"middleInitial": None,
"companyName": None,
"isOrganization": False,
"address": {
"type": "P",
"address1": "5171 California Avenue",
"address2": "Suite 200",
"address3": None,
"address4": None,
"locality": "Irvine",
"region": "CA",
"postalCode": "92617",
"countryCode": "US"
}
}

В этом примере, хотя некоторые поля, такие как «account», «middleInitial» и «companyName», имеют значение None, мне нужно, чтобы они были включены в запрос, отправляемый внешней службе.
Дополнительное примечание:
Возможно, проблема заключается не в конфигурации openapi-генератора, а в файле Swagger, используемом для создания этих моделей. Однако мне не удалось найти в файле Swagger какую-либо конфигурацию, которая приводила бы к желаемым моделям. Вот фрагмент моих моделей Swagger:
User:
type: object
required:
- address
properties:
account:
type: string
default: null
middleInitial:
type: string
default: null
lastName:
type: string
default: null
firstName:
type: string
default: null
companyName:
type: string
default: null
isOrganization:
type: boolean
default: null
address:
$ref: "#/components/schemas/Adress"


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

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

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

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

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

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

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