drf spectacular下Swagger UI不显示query查询参数如何解决
解决方案
你当前写的@extend_schema注解配置本身是符合要求的,按照以下步骤校验调整即可在Swagger UI中正常展示category查询参数:
- 首先确认基础依赖导入和框架配置正确:
- 导包语句必须正确:
from drf_spectacular.utils import extend_schema, OpenApiParameter- 确认
settings.py中已经完成drf-spectacular基础配置:
INSTALLED_APPS = [ # 其余原有应用 'drf_spectacular', ] REST_FRAMEWORK = { # 其余原有DRF配置 'DEFAULT_SCHEMA_CLASS': 'drf_spectacular.openapi.AutoSchema', } - 你当前把
@extend_schema注解加在重写的list方法上的写法是生效的,配置完成后清理浏览器缓存、重启Django服务,重新打开Swagger UI即可看到category查询参数。 - 如果你不想单独给
list方法加注解,也可以把参数配置放到视图类的全局属性中,对所有列表查询接口生效:
from drf_spectacular.utils import OpenApiParameter from rest_framework.generics import ListAPIView class YourGoodsListView(ListAPIView): # 其余原有配置:serializer_class、queryset、filter_backends等 extend_schema_parameters = [ OpenApiParameter(name='category',location=OpenApiParameter.QUERY, description='Category Id', required=False, type=int), ] def list(self, request, *args, **kwargs): category_id = request.query_params.get('category') # 原有业务逻辑 return Response(data)
内容的提问来源于stack exchange,提问作者Ashin Shakya
相关产品推荐
相关产品推荐

