drf_yasg не принимает TYPE_ARRAY в качестве допустимого типа - PullRequest
0 голосов
/ 27 ноября 2018

генератор swfger drf_yasg не принимает 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 работает отлично.

1 Ответ

0 голосов
/ 22 декабря 2018

A Parameter из TYPE_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 .

...