1

所以我的 flask_apispec 文档器有一个烦人的问题。

我希望我的 api 的帖子正文接收到这个

kwargs:
[
    {
      "CreatedUserGuid": "string",
      "DeviceGuid": "string",
      "DeviceMetaDataGuid": "string",
      "LastModifiedUserGuid": "string",
      "MetaDataTypeId": "string",
      "MetadataFieldGroupGuid": "string",
      "MetadataFieldName": "string",
      "MetadataFieldTemplateMapGuid": "string",
      "MetadataFieldValue": "string"
    }
]

注意:作为批量输入的平面数组是我想要的。

在 swagger.json 中它看起来像这样:(我想通过 flask_restful 和 flask_apispec 自动记录来实现)

        "DMDNEsted" : {
            "type":"object",
            "properties": {
                "PartyMetaData": {
                    "type":"array",
                    "items": { 
                        "$ref":"#/components/schemas/DMDSearch"
                            
                    }
                }

            }
        },

但我似乎无法做到这一点....使用下面的代码(见屏幕底部)我显然得到了这个:

大摇大摆我不想要

目前的代码是:

class DMDSearch(Schema):
    CreatedUserGuid= fields.String(required=False)
    DeviceGuid= fields.String(required=False)
    DeviceMetaDataGuid= fields.String(required=False)
    LastModifiedUserGuid= fields.String(required=False)
    MetaDataTypeId= fields.String(required=False)
    MetadataFieldGroupGuid    = fields.String(required=False)
    MetadataFieldName= fields.String(required=False)
    MetadataFieldTemplateMapGuid= fields.String(required=False)
    MetadataFieldValue= fields.String(required=False)
class DMDNEsted(Schema):
    deviceMetadata = fields.Nested(DMDSearch, many=True)

class DeviceMetaDataApi(MethodResource,Resource):
    @doc(description='Manage Device Meta Data',tags=['Device Linking','Device Management'], 
    @use_kwargs(DMDNEsted, location=('json'))
    @marshal_with(DeviceMetaDataSchemaAll)
    def post(self,**kwargs):
         #blah blah handle post
    
4

0 回答 0