Как генерировать переменную длинного типа в спецификации API, сгенерированной FastAPI?Python

Программы на Python
Anonymous
Как генерировать переменную длинного типа в спецификации API, сгенерированной FastAPI?

Сообщение Anonymous »

Этот класс является частью проекта: < /p>

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

from pydantic import BaseModel, StrictInt, constr, validator

class Person(BaseModel):
person_id: StrictInt
person_name: constr(strip_whitespace=True, strict=True)

@validator('person_id')
def person_id_validator(cls, val):
assert val is not None
return val

@validator('person_name')
def person_name_validator(cls, val):
assert val != ''
return val
Когда API-spec генерируется для этого класса с использованием fastApi (). openApi () , тип переменной person_id всегда является целом И, следовательно, клиент Java, сгенерированной из этой спецификации, всегда имеет целое число класса обертки для переменной personid . Тем не менее, PersonId может быть очень длинным числом (> 5 000 000 000), которое я не могу сохранить в целом .
сама пиданка не имеет долгого. встроенный. Python обрабатывает Int32 и Int64, поэтому я не могу это контролировать. Я пытался использовать numpy.int64 и torch.long с помощью Arbitrary_types_allowed в конфигурации класса , но это всегда не удается во время выполнения с сообщением

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

ValueError: Value not declarable with JSON Schema, field: name='person_id' type=int64 required=True
.
Как мне это достичь?

Подробнее здесь: https://stackoverflow.com/questions/766 ... by-fastapi

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