django-rest-framework - 如何在 drf-aysg swagger web UI 中显示棉花糖 sheme 作为 request_body 的示例
问题描述
我正在做的项目:
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渲染为复杂对象(不作为默认值 - 字符串)
解决方案
推荐阅读
- javascript - VueJS:在同一组件的两个实例之间切换的最佳方式
- c# - 从 FileName 获取日期并保留为变量 DateTime
- ajax - Ember-qunit 单元测试失败,全局错误 Ajax 中止
- conv-neural-network - 特征图中的每个单元都连接到前一层的几个邻域
- angular - 角手柄从虚拟滚动数组中删除项目
- wordpress - Wordpress 音频简码覆盖元数据
- javascript - 有没有办法让按钮重定向到当前链接的页面,但是用另一种语言
- python - 如何计算结果值不是浮点数的三角函数(正弦、余弦、..ect)
- python - Python zlib 压缩和解压
- sharepoint - 如何在共享点搜索中控制隐私