Как установить тип данных параметра пути в drf-yasg - PullRequest
1 голос
/ 13 апреля 2020

Я использую Django, DRF , drf-yasg и Swagger Codegen для автоматической сборки кода TypeScript для доступа к моему REST API.

В бэкэнде Django я добавил путь для обслуживания с помощью DRF:

rest_router = routers.DefaultRouter()
rest_router.register(r'source/(?P<source_id>[0-9]+)/document', DocumentViewSet)

DocumentViewSet - это DRF ModelViewSet .

Как видите, параметр source_id имеет тип Numberri c. Тем не менее, полученное сгенерированное описание API определяет параметр source_id как тип String.

Очевидно, что числовое c регулярное выражение в настройке пути недостаточно, поэтому я предполагаю, что мне нужна некоторая аннотация типа в DocumentViewSet учебный класс? Я попытался следующий код, но это не показало эффекта:

@swagger_auto_schema(
    manual_parameters=[
        openapi.Parameter(name="source_id",
            required=True,
            type="integer",
            in_="path",
            description="Source reference",
        ),
    ],
)
class DocumentViewSet(viewsets.ModelViewSet):
    serializer_class = rest_serializers.DocumentSerializer
    queryset = models.Document.objects.all().order_by('id')

Как я могу сказать drf-yasg, чтобы установить для параметра source_id тип Integer?

...