我正在尝试使用 Flask RestX 和 Swagger 设置端点:
repsonses 模型具有嵌套字段,但输入模型不应该
我正在关注文档说我应该用format
方法实现一个类,并将其设置为主体api.doc
address_ns = Namespace(name="address", validate=True)
fields = {
"street": String(attribute="street"),
"number": String(attribute="number"),
"zip_code": String(attribute="zip_code"),
"user_id": Integer(attribute="user_id"),
"cep_id": Integer(attribute="cep_id"),
}
fields["cep"] = Nested(cep_model)
fields["user"] = Nested(user_model)
model_with_netsted_fields = Model('Address', fields)
class AddressPostFields(Raw):
def format(self, value):
return {
"street": value.street,
"number": value.number,
"zip_code": value.zip_code,
"user_id": value.user_id,
"cep_id": value.cep_id,
}
@address_ns.route("", endpoint="address_create")
class AddressResource(Resource):
@address_ns.response(HTTPStatus.OK, "Retrieved unit list.")
@address_ns.doc(model=model_with_netsted_fields)
def get(self):
return '{}'
@address_ns.response(int(HTTPStatus.CREATED), "Added new unit.")
@address_ns.doc(model=model_with_netsted_fields, body=AddressPostFields)
def post(self):
return '{}'
有了这个,我不允许在帖子上添加正文。如果我更改body
参数model_with_netsted_fields
,swagger 会按预期显示所有字段。
我正在关注restx docs,但无法使其正常工作...
任何建议将被认真考虑