Я использую 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?