2

drf_yasg swagger 生成器不将 TYPE_ARRAY 作为有效的参数类型。实现如下

from drf_yasg import openapi
param1 = openapi.Parameter('param_name',
                            in_=openapi.IN_QUERY,
                            description='description of param',
                            type=openapi.TYPE_ARRAY,
                            required=True
                            )

而 drf_yasg 的文档表明它将 openapi.TYPE_ARRAY 作为有效类型。

生成器抛出的错误是

File "/usr/local/lib/python3.6/dist-packages/drf_yasg/codecs.py", line 73, in encode
    raise SwaggerValidationError("spec validation failed", errors, spec, self)
drf_yasg.errors.SwaggerValidationError: spec validation failed

是否有一些我缺少的配置或什么,因为 TYPE_STRING,TYPE_NUMBER 工作得很好。

4

1 回答 1

11

A ParameterofTYPE_ARRAY需要items密钥:

param1 = openapi.Parameter('param_name',
                            in_=openapi.IN_QUERY,
                            description='description of param',
                            type=openapi.TYPE_ARRAY,
                            items=openapi.Items(type=openapi.TYPE_STRING)  # <------
                            required=True
)

有关详细信息,请参阅OpenAPI 2.0 规范

于 2018-12-22T18:30:05.313 回答