问题标签 [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 回答
1406 浏览

python - 使用 Django Rest Framework 在 swagger 生成中重用选择定义

drf-yasg我有一个用于生成swagger.json文件的 Django(Django Rest Framework)网络服务。在模型中,我有几个枚举/选择字段用于多个地方。默认情况下,drf-yasg为每个事件定义内联字段:

在 swagger 文件中生成以下定义:

这是一个小问题,因为它使客户端代码生成工具生成每个枚举作为自己的类型,而不是重用定义。因此,我想创建一个像这样的 swaggerfile:

是否可以在 Django Rest Framework 中启用此行为?

0 投票
3 回答
4984 浏览

django-rest-framework - Django Rest Framework Swagger 停止工作

刚刚尝试使用 DRF 和 drf-yasg 重建一个容器。完全相同的提交很好地通过了所有测试,但现在由于以下异常而失败:

没有其他任何改变,但似乎可能包含了一个更新的包,它破坏了 Swagger 生成器。

其他人有类似的经历吗?

所以看起来 pip 正在拉动 DRF V3.10,它有一些从 CoreAPI 到 OpenAPI 的切换:https ://www.django-rest-framework.org/community/3.10-announcement/ 。从发布文档中添加一行:

似乎没有任何区别。

0 投票
2 回答
1847 浏览

django-rest-framework - 如何在 ViewSet 文档字符串中明确记录可能的 REST 操作?

DRF文档提到了这一点:

请注意,使用视图集时,基本文档字符串将用于所有生成的视图。要为每个视图提供描述,例如列表和检索视图,请使用 Schemas as documentation 中描述的文档字符串部分:示例。

但是链接很糟糕,类似的链接https://www.django-rest-framework.org/api-guide/schemas/没有提到这些“部分”。

当我的单个 Viewset 组成时,我如何清楚地记录我不同的可能 REST 操作,

0 投票
3 回答
4446 浏览

django - 如何使用 drf-yasg 在 django-rest-framework 中为文件上传 API 制作招摇模式?

我找不到为文件上传 API 制作架构的任何支持。Swagger UI 必须有一个按钮,允许测试人员上传文件以进行测试。我使用 firebase 作为数据库,因此序列化程序和模型不会出现。我只使用 Django 的 rest 框架。

我查看了建议使用 Operation 进行文件上传的 drf-yasg 文档。但它是一个非常抽象和晦涩的文档。

0 投票
1 回答
1543 浏览

python - 在 DRF 中处理相关模型并为其获取正确的 swagger 文档

所以我在尝试做的事情上遇到了一些麻烦。

基本上,我有这些模型:

现在我正在尝试创建一个端点,允许我的用户添加“包”并将项目模型中的预先存在的项目添加到新创建的包中。一个包裹当然可以有很多物品。

所以我写了一个包序列化程序,然后添加了一个 SerializerMethodField 允许对给定包包含的任何项目执行获取操作。该方法调用不同的序列化程序。这是两个序列化程序的代码:

现在就我的观点而言,我决定这样做:

这就是它的工作原理:我得到了这些路线:

[获取/发布] 为/api/packages/

[所有方法]为/api/packages/{id}

[发布/删除]为/api/packages/{id}/item

我得到了正确的路线,但首先,Swagger 给了我错误的帖子模型:

不知道为什么当我发布到/api/packages.

同样,这些字段显示在 PUT 下/api/packages/{id}

对于嵌套的“项目”路线,POST效果很好,但效果不佳DELETE。POST 路由允许我输入项目 ID 并将其添加到/api/packages/{id}/item路由下的给定包裹 ID。但是删除不允许我输入要删除的项目 ID。

所以我认为我对嵌套 ITEM 的删除方法的方法是完全错误的。

我是 DRF/django 的新手,试图验证我是否朝着正确的方向前进。

如何让 drf-yasg 为我提供正确的 HTTP 动词模型,例如 POST?删除嵌套项目的正确方法是什么?

我处理这个问题对吗?还有其他方法可以更有效地做到这一点吗?

如果有人可以帮助我回答这些问题,将不胜感激:)

先谢谢各位了。

0 投票
0 回答
324 浏览

django-rest-framework - 如何在 drf-aysg swagger web UI 中显示棉花糖 sheme 作为 request_body 的示例

我正在做的项目:

1) 与 20 多个外部数据源一起工作,只会有更多(rest api、xmlrpc、boto 和 boto3、xml 等)在主要使用棉花糖方案

2) 计划了 100 多个 API 方法(使用django-rest-marshmallow

3) 整个 API 描述通过库drf-aysg使用openapi.Schema 维护

我想让项目中的所有序列化/反序列化操作都相同。为此,我想使用棉花糖

openapi Schema 描述输入 API 数据

API 描述装饰器

我想使用此代码而不是第一个块

但是 Swagger Web UI 仅将最后一个类定义显示为字符串而不是带有字符串列表的 dict

如何使库drf-yasg将Marchmallow渲染为复杂对象(不作为默认值 - 字符串)

0 投票
1 回答
3582 浏览

python - Django 2.x drf-yasg 如何在自定义方法中创建 API(如在 swagger 中)

我正在将我的 Django 1.11.7 迁移到 2.x。问题之一是 django-rest-swagger,它现在已被弃用。现在 drf-yasg 应该是 API 文档和创建的方式。我需要以类似的方式创建自定义 api,因为它不会破坏移动设备中的任何内容。

以前是这样的(django-rest-swagger==2.1.1)

旧的不推荐使用的招摇 2.1.1 这是在 Django 1.11.7 和 django-rest-swagger==2.1.1 中运行良好的旧代码片段:

我的问题是如何在 drf-yasg 中进行类似的操作,因为我想迁移此代码并且不破坏移动设备上的任何内容。

可能会尝试在这个最新的稳定版本上执行此操作:

0 投票
1 回答
722 浏览

django - drf-yasg - testproj - 如何静默所有调试输出

如何使 drf-yasg - testproj 的调试语句静音? https://github.com/axnsan12/drf-yasg

这就是我的设置方式:

但它不断产生大量的调试打印,这让我很难测试某些功能。如何使这些调试打印静音?谢谢。

以下是调试打印:

0 投票
2 回答
3067 浏览

python - 如何在 drf_yasg 中将 Schemes 从 HTTP 更改为 HTTPS?

我正在使用drf_yasg招摇文档。当我在 AWS Application Load Balancer 后面发布我的 DRF 应用程序并将侦听器设置为侦听 443 HTTPS 并重定向到运行 DRF 的我的 EC2 时,swagger UI 正在尝试向端点发送请求,http://example.com/status而不是例如https://example.com/status。这会产生一个谷歌浏览器错误:

所以我解决这个问题的解决方案是将我的服务器 URL 显式设置为drf_yasg.views.get_schema_view. 所以我的代码看起来像:

我希望能够不显式设置 URL 字符串,而是在 HTTP 或 HTTPS 之间选择方案。有可能drf_yasg吗?

0 投票
2 回答
3909 浏览

django-rest-framework - 用于 GET 请求的 drf-yasg 文档输入和输出序列化程序

我想用 drf-yasg 记录 GET 请求的输入模式和输出模式。

这似乎并不容易。

上面的代码显示了 GET 参数,但不知何故隐藏了响应模式。

我不能将 request_body 用于 GET 查询参数,它仅用于帖子正文

那么如何使用 drf-yasg 记录我的输入模式和输出模式?