我正在做的项目:
1) 与 20 多个外部数据源一起工作,只会有更多(rest api、xmlrpc、boto 和 boto3、xml 等)在主要使用棉花糖方案
2) 计划了 100 多个 API 方法(使用django-rest-marshmallow)
3) 整个 API 描述通过库drf-aysg使用openapi.Schema 维护
我想让项目中的所有序列化/反序列化操作都相同。为此,我想使用棉花糖库
openapi Schema 描述输入 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 Web UI 仅将最后一个类定义显示为字符串而不是带有字符串列表的 dict
如何使库drf-yasg将Marchmallow渲染为复杂对象(不作为默认值 - 字符串)