问题标签 [drf-spectacular]
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 - 在 drf-spectacular 设置中传递 Swagger-UI url
我有一个项目,Django 2.x.
我想使用drf-spectacular添加自动文档。我drf-spectacular=0.15.1
目前正在使用。
我在 Docker 中运行我的项目,我的 api 容器的构建上下文设置为 api 项目的根文件夹。
当我运行命令生成模式时./manage.py spectacular --file schema.yml
,脚本会schema.yml
在我的 api 项目的根目录中创建一个文件,但我的 Djangosettings.py
位于下一层,位于名为my_website
. 项目的结构是这样的:
因此,在settings.py
我添加了特定设置以告诉 Swagger-UI 从何处获取架构,如drf-spectacular
文档中所述:
一旦我尝试访问项目中的 swagger-ui url 以检查架构是否已加载到那里,我会收到错误消息:**Fetch error** Not Found schema.yml
. 我尝试以各种方式传递架构 url,例如通过相对 url ../schema.yml
,但这也不起作用。也许有人可以让我知道我做错了什么。
谢谢!
django-rest-framework - 将 FileField/ImageField 与 Swagger UI 和 drf-spectacular 一起使用
我有一个 Django REST Framework 项目,它使用ModelViewSet
为包含FileField
.
我在这里分享了一个演示这个问题的 Django 项目的完整示例。但总结一下关键组件:
模型.py
视图.py
网址.py
settings.py(REST_FRAMEWORK
仅配置):
要求.txt
我正在使用drf-spectacular生成可浏览的 Swagger-UI 文档来记录 API。
问题是FileField
Swagger-UI 中的输入是string
输入,并且没有提供设置文件的选项:
我想要一个文件输入,我可以在其中选择一个将发送到 API 的文件。
我的问题是:如何配置 DRF 或 drf-spectacular 以显示该字段?
django-rest-framework - drf-spectacular:如何在 Swagger 的示例部分显示主键
我试图在 Swagger 的示例部分中显示主键,我使用的是drf-spectacular,我的代码如下所示:
序列化器.py
视图.py
仅显示名称字段:
我发现的唯一解决方案是使用内联序列化程序,这不是理想的解决方案,因为如果我更新我的书序列化程序,我必须记住也要更新这个内联序列化程序。我想知道是否有更好的方法来做到这一点。
django - DRF 壮观没有发现自定义身份验证扩展类
当从 rest_framework_simplejwt.authentication.JWTAuthentication drf-spectacular swagger-ui 扩展一个新的令牌认证类时,授权按钮消失并且没有办法添加令牌持有者,我猜当你子类化它时会出错。
重现步骤:
首先,创建一个 Django 项目,其中安装了 rest 框架和 drf-spectacular 和简单的 jwt,并使用文档指导进行配置。到 /swagger-ui/ 它工作正常。
然后创建一个 JWTAuthentication 的子类,如下所示:
并在您的设置中:
现在如果你去 /swagger-ui/ 那里没有授权按钮!!!我怎样才能解决这个问题?
我什至尝试创建一个 AuthenticationExtension,例如:
但是没有办法在任何地方、互联网或文档中注册它!覆盖身份验证类时如何修复授权按钮?
编辑:做 JPG 所说的并在设置中导入扩展名:
引发异常:
python - drf-spectacular:使用@extend_schema 指定空有效负载
考虑到我有一个简单的观点,
当我渲染架构时,我得到了以下错误响应,
错误 #0:EmptyPayloadAPI:无法猜测序列化程序。这是对 APIViews 的优雅回退处理。如果视图在您的控制之下,请考虑使用 GenericAPIView 作为视图基类。暂时忽略视图。
那么,我如何告诉@extend_schema
装饰器我不打算将任何内容作为有效负载传递?
drf-spectacular - 用于路由的自定义@action 中方法的不同描述
我使用 @action 装饰器为 DRF ViewSet 做了自定义可路由方法。
此溃败实现了多种方法(GET、POST、DELETE)。是否可以对每种方法有不同的描述,甚至可以为每种方法创建不同的 @extend_schema 定义?
乌罗什
python - drf-spectacular 的 extend_schema 不起作用
我最近从我的项目迁移drf-yasg
到drf-spectacular
,但@extend_schema
装饰器似乎没有向我生成的模式添加任何信息:
views.py
这是生成的架构的相关部分:
这里有一些关于 context 的附加信息:
urls.py
SPECTUACULAR_SETTINGS
- 版本:
django - drf-壮观的反向相关对象
我对架构中的反向相关对象有疑问。
序列化器:
视图尚未准备好,因为我无法上传文件:
主要问题是这个反向相关的对象(文件)被渲染错误。
而不是某种文件输入数组,我得到了 json 数组。我应该怎么做才能修复它?我知道我可以用另一种方式制作它,比如只制作 files = serializer.ListField(child=FileField...) 并保存这些文件,即使没有任何序列化程序,但我想以某种正确的方式做到这一点 =/