1

我正在尝试使用 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,但无法使其正常工作...

任何建议将被认真考虑

4

0 回答 0