【问题标题】:How to manually customize parameters of DRF views using drf-yasg Swagger?如何使用 drf-yasg Swagger 手动自定义 DRF 视图的参数?
【发布时间】:2024-05-21 09:00:01
【问题描述】:

我正在使用 drf-yasg 包将 Swagger 与 DRF 集成。

正如文档所述,我使用 @swagger_auto_schema 装饰器手动自定义自动生成的端点。经过多次尝试,我仍然无法弄清楚为什么没有任何变化。

所以,我尝试在RetrieveUpdateAPIView 中添加额外的查询参数:

class MyCustomView(RetrieveUpdateAPIView):
    ...

    @swagger_auto_schema(
        manual_parameters=[openapi.Parameter('test', openapi.IN_QUERY, description="test manual param", type=openapi.TYPE_BOOLEAN)]
    )
    def retrieve(self, request, *args, **kwargs):
        ...

毕竟,似乎什么都没有改变。那我到底该怎么办?

【问题讨论】:

  • 当我复制粘贴代码并查看更改时,您是否转到 localhost:8000/swagger 并在自定义视图端点中看到了新的测试参数。你导入 openapi 和 swagger_auto_schema 了吗?
  • 我正在使用与 drf swagger 兼容的django_filters。你可以看看它:]

标签: django django-rest-framework swagger drf-yasg


【解决方案1】:

您必须在 get 方法中添加 swagger_auto_schema 而不是检索。

@swagger_auto_schema(
        manual_parameters=[openapi.Parameter('test', openapi.IN_QUERY, description="test manual param", type=openapi.TYPE_BOOLEAN)]
    )
    def get(self, request, *args, **kwargs):
        ...

【讨论】:

  • 这不是答案。 OP 询问如何为基于类的视图指定架构,而您的答案是基于函数的视图。
最近更新 更多