问题标签 [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.
python - 使用 Django Rest Framework 在 swagger 生成中重用选择定义
drf-yasg
我有一个用于生成swagger.json
文件的 Django(Django Rest Framework)网络服务。在模型中,我有几个枚举/选择字段用于多个地方。默认情况下,drf-yasg
为每个事件定义内联字段:
在 swagger 文件中生成以下定义:
这是一个小问题,因为它使客户端代码生成工具生成每个枚举作为自己的类型,而不是重用定义。因此,我想创建一个像这样的 swaggerfile:
是否可以在 Django Rest Framework 中启用此行为?
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/ 。从发布文档中添加一行:
似乎没有任何区别。
django-rest-framework - 如何在 ViewSet 文档字符串中明确记录可能的 REST 操作?
DRF文档提到了这一点:
请注意,使用视图集时,基本文档字符串将用于所有生成的视图。要为每个视图提供描述,例如列表和检索视图,请使用 Schemas as documentation 中描述的文档字符串部分:示例。
但是链接很糟糕,类似的链接https://www.django-rest-framework.org/api-guide/schemas/没有提到这些“部分”。
当我的单个 Viewset 组成时,我如何清楚地记录我不同的可能 REST 操作,
django - 如何使用 drf-yasg 在 django-rest-framework 中为文件上传 API 制作招摇模式?
我找不到为文件上传 API 制作架构的任何支持。Swagger UI 必须有一个按钮,允许测试人员上传文件以进行测试。我使用 firebase 作为数据库,因此序列化程序和模型不会出现。我只使用 Django 的 rest 框架。
我查看了建议使用 Operation 进行文件上传的 drf-yasg 文档。但它是一个非常抽象和晦涩的文档。
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?删除嵌套项目的正确方法是什么?
我处理这个问题对吗?还有其他方法可以更有效地做到这一点吗?
如果有人可以帮助我回答这些问题,将不胜感激:)
先谢谢各位了。
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渲染为复杂对象(不作为默认值 - 字符串)
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)
这是在 Django 1.11.7 和 django-rest-swagger==2.1.1 中运行良好的旧代码片段:
我的问题是如何在 drf-yasg 中进行类似的操作,因为我想迁移此代码并且不破坏移动设备上的任何内容。
可能会尝试在这个最新的稳定版本上执行此操作:
django - drf-yasg - testproj - 如何静默所有调试输出
如何使 drf-yasg - testproj 的调试语句静音? https://github.com/axnsan12/drf-yasg
这就是我的设置方式:
但它不断产生大量的调试打印,这让我很难测试某些功能。如何使这些调试打印静音?谢谢。
以下是调试打印:
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
吗?
django-rest-framework - 用于 GET 请求的 drf-yasg 文档输入和输出序列化程序
我想用 drf-yasg 记录 GET 请求的输入模式和输出模式。
这似乎并不容易。
上面的代码显示了 GET 参数,但不知何故隐藏了响应模式。
我不能将 request_body 用于 GET 查询参数,它仅用于帖子正文
那么如何使用 drf-yasg 记录我的输入模式和输出模式?