我使用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
参数是数字类型。但是,生成的 API 描述将source_id
参数定义为 String 类型。
显然路径设置中的数字正则表达式是不够的,所以我想我需要在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
参数设置为整数类型?