--- title: Выбрать библиотеку моделей description: Сравните Pydantic, msgspec, dataclass и Adaptix без изменения HTTP-операций. sources: - eazy_sdk.models api_fingerprint: "sha256:536595de5a736d92191121bc382b0caf79dadaefc51a1d89c578748112db46b8" --- Модель задаёт типы Python и имена полей в представлении API. HTTP-операция, клиент и обработка ответов не зависят от выбранной библиотеки. | Вариант | Установка | Когда выбирать | |---|---|---| | Pydantic v2 | `eazy-sdk-core[pydantic]` | Нужна развитая валидация и Pydantic уже используется в приложении | | msgspec | `eazy-sdk-core[msgspec]` | Нужны компактные неизменяемые структуры и быстрый разбор | | dataclass | входит в ядро | Достаточно стандартной библиотеки и простых моделей | | Adaptix | `eazy-sdk-core[adaptix]` | Приложение уже хранит общие правила преобразования в `Retort` | `default_model_adapters()` также поддерживает `TypedDict`. Реестр выбирает ровно один адаптер для типа. Если два адаптера заявят одну модель, компиляция завершится `AmbiguousModelAdapterError`, а не выберет случайный порядок. Имена полей на стороне API задаются средствами библиотеки: alias Pydantic, `rename` msgspec, обычным именем dataclass или `name_mapping` Adaptix. Вложенные модели проходят через тот же реестр. :::{note} Выбирайте библиотеку по контракту приложения, а не по синтетическому сравнению одной операции. Планы полей кэшируются по классу модели, поэтому повторная интроспекция не выполняется для каждого объекта ответа. ::: ## Дальше - {doc}`Подключить Pydantic ` - {doc}`Подключить msgspec ` - {doc}`Подключить Adaptix `