我正在从事的项目:
1)可使用20多个外部数据源,并且只会有更多的外部数据源(其余api,xmlrpc,boto和boto3,xml等)。主要使用棉花糖方案< / p>
2)计划使用超过100种API方法(使用 django-rest-marshmallow )
3)使用 openapi.Schema
通过库 drf-aysg 维护整个API描述。我要使项目中的所有序列化/反序列化操作相同。为此,我想使用棉花糖库
openapi模式描述输入的API数据
PackageCreateDomainSchema = openapi.Schema(
title="Mass Domain Creation",
type=openapi.TYPE_OBJECT,
required=["domains"],
properties={
'domains': openapi.Schema(type=openapi.TYPE_ARRAY, items=openapi.Items(type=openapi.TYPE_STRING)),
},
)
API描述修饰符
@swagger_auto_schema(
request_body=PackageCreateDomainSchema,
operation_summary="Package Domain adding",
tags= ['Tag1', "Tag2"],
responses= {
201: openapi.Response('Domain added', CreateDomainSchema , examples=[{"created": 5, "exists": ['example.com'] }])
}
)
我想使用此代码代替第一个块
from rest_marshmallow import Schema, fields
class PackageCreateDomainSchema(Schema):
domains = fields.List(fields.String(), required=True)
但是Swagger网络用户界面仅将最后一个类的定义显示为 string ,而不显示为 带有字符串列表的字典 < / p>
如何使库 drf-yasg 将 marchmallow 呈现为复杂对象(不是默认值-字符串)