问题标签 [drf-yasg]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3703 浏览

django-rest-framework - drf_yasg 不将 TYPE_ARRAY 作为有效类型

drf_yasg swagger 生成器不将 TYPE_ARRAY 作为有效的参数类型。实现如下

而 drf_yasg 的文档表明它将 openapi.TYPE_ARRAY 作为有效类型。

生成器抛出的错误是

是否有一些我缺少的配置或什么,因为 TYPE_STRING,TYPE_NUMBER 工作得很好。

0 投票
1 回答
1698 浏览

django - 未调用 ListCreateAPIView 的 get_queryset

我有一个试图覆盖 get_queryset 的 ListCreateAPIView,但它从未被调用过。这是我的看法:

这是 urls.py:

get_queryset关于为什么没有被击中/覆盖的任何想法?

0 投票
1 回答
6178 浏览

django - DRF YASG 定制

我正在尝试使用 yasg 自定义我的 api 文档。

首先,我想确定我自己的部分的命名,以及本部分应包含哪些端点。似乎部分的命名是基于不属于最长公共前缀的第一个前缀,例如:

如果我们有 api/v1/message 和 api/v1/test 的 URL,那么这些部分将被命名为 message 和 test。有没有办法让我确定此部分的自定义命名?

再者,每一节的介绍都是空的,怎么在这里加文字呢? 如何在此处添加文字?

最后但并非最不重要的一点是,Stripe 有这些令人惊叹的部分分隔符,我如何在 drf yasg 中添加这些。

部分分隔符

0 投票
2 回答
1993 浏览

django - 如何在 DRF-YASG 中为 DRF 和 DJANGO 消除 swagger-ui 中的 id 路径参数

我正在使用 DRF-YASG 在 Swagger 中记录 API,并希望自定义/消除参数中显示的某些字段

我正在使用 Django 2.1.7、DRF 3.9.2 和 DRF-YASG 1.14.0 运行该项目。

所以,我想消除 swagger-ui 中显示的 ID(如“字符串”和“路径”),因为我通过 Schema 在正文请求中拥有它,但 swagger-ui 显示 id(自动生成的字段)在参数中。

在下面的屏幕中,您可以看到问题:

https://user-images.githubusercontent.com/5421182/54859641-70359d00-4cee-11e9-9b12-79ab57d12495.png

在这里,我的代码...

当我在 in 中添加字段时manual_parameters@swagger_auto_schema仅更改 this 的属性...但该字段仍然存在。

0 投票
2 回答
959 浏览

django - 如何在 redoc API 文档上自定义 API 端点

我正在使用redocindjango==2.0来记录一些djangoAPI。我注意到默认情况下,redoc 会自动命名端点,如下图左侧所示。很可能我不想使用生成的名称我想自定义名称。有redoc文档经验的人能给点建议吗?

在此处输入图像描述

0 投票
1 回答
220 浏览

python - DRF_YASG 生成的文档中的自由格式文本

有没有办法向通过 drf_yasg 生成的文档添加自由格式的文本?我在他们的文档中看不到明显的解释。

我只想添加几节介绍文本。

0 投票
3 回答
3912 浏览

python - 如何使用 drf-yasg 自动生成的招摇页面配置“HTTPS”方案?

我知道在传统的招摇 YAML 文件中,我们可以使用以下方式定义方案:

但是,如何使用drf-yasg库自动生成的招摇页面做同样的事情?

现在,生成的 swagger 页面仅包含HTTP方案,但HTTPS缺少。我已经尝试将DEFAULT_API_URLin设置setting.pyhttps://mybaseurl.com,但它似乎不起作用。

0 投票
0 回答
2189 浏览

django - 使用 Swagger 记录具有多个响应的 DRF GET 端点

我有一个使用 Django 创建的 RESTful API 的 GET 端点。此端点从 URL 的查询字符串中读取三个值。查询字符串中的特定参数可能会更改来自此端点的 JSON 响应中返回的数据(包括额外的字段并稍微更改结构)。

此端点不直接绑定到单个模型。我的视图子类RetrieveAPIView,在视图中,我重写了get_object方法并执行了一些逻辑来查询多个模型,做出一些决定并返回一个有序的字典。

我的问题如下:

我想使用 Swagger 记录这个端点。我drf-yasg用来生成我的 Swagger 文档。我没有为此视图声明序列化程序;因为我手动构建了一个有序字典,get_object所以我没有看到声明一个字典的目的。我不确定如何使用drf-yasg.

我只发现了一种记录端点的方法,但它非常丑陋并且使我的代码膨胀,我想知道是否有更好的方法。

通过声明一个openapi.Response对象,并将这个对象提供给@swagger_auto_schema装饰器 Swagger 显示两个可能的响应,但描述整个响应确实使我的代码膨胀。这是一个示例,如果当前可以记录端点:

有没有更好的方法来解决这个问题?是否有更好的 Django 框架或 drf-yasg 库的 Django 设计模式/功能,我可以在这里应用它来帮助我处理多个响应体?

0 投票
0 回答
1926 浏览

django - 如何为多项选择过滤器生成模式?

在我们的 API 中,我们有一个端点来列出位置。我们允许过滤位置类型,并且我们允许此过滤器使用多个值。例如:

对于过滤,我们使用django-filter. 但是,drf-yasg似乎没有正确生成此参数的架构。

视图类可以归结为:

过滤器类如下所示:

此视图按预期工作 - 以下测试通过:

我希望为这个参数生成的 yaml 看起来像这样:

但相反,它看起来像这样:

这是一个限制drf-yasg吗?

不能使用swagger_auto_schema's query_serializer,因为它不允许覆盖过滤器后端生成的模式。

这似乎是因为django_filters.rest_framework.backends.DjangoFilterBackend.get_coreschema_field只输出两种字段类型,数字和字符串。我继续并覆盖了该方法,但是,它随后抛出错误drf_yasg.inspectors.query.CoreAPICompatInspector.coreapi_field_to_parameter,不接受数组类型。

0 投票
0 回答
2089 浏览

django - Swagger 从序列化程序提供正确的 POST 方法 API 渲染,但不适用于 DELETE 方法

我们的项目正在使用 Django、Django-Rest-Framework 和 drf_yasg 大摇大摆地记录我们的 API。我创建了一个序列化程序,并将它与我的 POST 方法一起使用。一切正常,所有字段都出现在我的招摇页面上。我使用相同的序列化程序创建了一个删除方法,并且 swagger 文档仅将第一组字段显示为 API 的参数。

我试着用

并有一个单一的方法。文档页面中立即缺少 post 和 delete 方法。

以及使用时 @swagger_auto_schema(responses={200: listResponseSerializer()})

Post 方法有效,但 delete 方法无效。

此捕获显示了 POST 方法的良好结果,其中所有字段都显示在 API 文档中。过滤器、参数等。

在此处输入图像描述

使用 DELETE,它只显示过滤器并忽略序列化程序中存在的所有其他字段。

在此处输入图像描述

希望有人可以帮助我解决这个问题。我现在正在为此苦苦挣扎几天。我不明白我错过了什么,或者我不理解 django 和 swagger 之间的哪些集成,需要帮助。

视图.py:

在 serializer.py 中:

过滤器.py:

网址.py:

模型.py: