Как можно избежать дублирования при создании моделей 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()
), но я не понимаю, как я могу использовать их для уменьшения дублирования здесь.