Как можно избежать дублирования при создании моделей flask-restx?

Я создаю простой API, используя flask-restx - я новичок в программировании API в целом и flask-restx в частности.

Основываясь на кратком руководстве и другой документации, у меня работает базовый CRUD API.

У меня есть несколько моделей, и все они используют одну и ту же базовую структуру для их определения. я буду использоватьlocation в качестве простого примера.

При определении моих моделей у меня есть следующее для конечной точки, которая создает объекты (где все поля обязательны):

location_create_model = api.model("LocationCreate", {
    'name': fields.String(required=True, description="Name of location"),
    'description': fields.String(required=True, description="Description of location"),
    'lat': fields.Fixed(required=True, decimals=6, description="Latitude of location"),
    'lon': fields.Fixed(required=True, decimals=6, description="longitude of location"),
    }
)

и следующее для редактирования объектов, где все поля необязательны:

location_edit_model = api.model("Location", {
    'name': fields.String(description="Name of location"),
    'description': fields.String(description="Description of location"),
    'lat': fields.Fixed(decimals=6, description="Latitude of location"),
    'lon': fields.Fixed(decimals=6, description="longitude of location"),
    }
)

Единственная разница - это required = True для конечной точки редактирования.

Есть ли способ указать и то, и другое без дублирования большей части информации? Я вижу, что одна модель API может наследовать от другой (inherit()) и клонировать модель (clone()), но я не понимаю, как я могу использовать их для уменьшения дублирования здесь.

0 ответов

Другие вопросы по тегам