- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经安装了 drf-yasg,并且运行良好。我遇到的问题是,它是一个大应用程序,并且每种类型的前端客户端都有大量端点,即 /admin/v1
、/app/v1
>, ...
所以我认为将每种类型的文档分开是一个好主意,即
urlpatterns += [
url(r'^/admin/swagger/$', admin_schema_view.with_ui('swagger', cache_timeout=0), name='schema-swagger-ui'),
url(r'^/app/swagger/$', app_schema_view.with_ui('swagger', cache_timeout=0), name='schema-swagger-ui'),
]
所以看起来drf-yasg通过向get_scheme_view
提供patterns
来支持这一点:
admin_schema_view = get_schema_view(
openapi.Info(
title="API",
default_version='v1',
description="The set of API endpoints used.",
terms_of_service="https://www.google.com/policies/terms/",
contact=openapi.Contact(email="contact@me"),
license=openapi.License(name="BSD License"),
),
patterns=?????,
validators=['flex', 'ssv'],
public=True,
permission_classes=(permissions.AllowAny,),
)
现在我的猜测是提供一个字符串,与定义url
时的第一个字符串相同,例如patterns=r'^admin/v1/',
结果是:
File "/usr/local/lib/python3.6/dist- packages/rest_framework/compat.py", line 55, in get_original_route
return urlpattern.regex.pattern
AttributeError: 'str' object has no attribute 'regex'
因此,文档位于 drf-yasg docs :
patterns – if given, only these patterns will be enumerated for inclusion in the API spec
这里到底需要什么类型的对象来处理模式
?我尝试在 github 上查看 django-rest-framework 和 Django 源代码,但找不到实际需要的类型,它们都是非常大的项目。
最佳答案
经过一些实验,我发现它期望的模式是一个 url 模式列表,而不仅仅是一个标准的 Python 正则表达式字符串。它应该与 urls.py
中的标准 django urlpatterns
完全相同。
因此,假设您已将管理 API url 模式导入为 admin_urlpatterns
,您所需要做的就是在模式选项中指定它
admin_schema_view = get_schema_view(
openapi.Info(
title="API",
default_version='v1',
description="The set of API endpoints used.",
terms_of_service="https://www.google.com/policies/terms/",
contact=openapi.Contact(email="contact@me"),
license=openapi.License(name="BSD License"),
),
patterns=admin_urlpatterns,
validators=['flex', 'ssv'],
public=True,
permission_classes=(permissions.AllowAny,),
)
绝对很难找到任何示例,他们可能希望在文档中包含一个生动的示例
关于django - 使用 drf-yasg,如何提供模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53817928/
我正在尝试使用 yasg 自定义我的 api 文档。 首先,我想确定我自己的部分的命名,以及本部分应包含哪些端点。似乎部分的命名是基于不属于最长公共(public)前缀的第一个前缀,例如: 如果我们有
我想自定义 drf_yasg 生成的文档的样式(字体、颜色、 Logo 等)。 我发现我可以使用 block extra_head、extra_styles、extra_body 扩展 drf_yas
我的 drf 的响应仅包含单个序列化程序给出的数据,我们可以将其实现为: @swagger_auto_schema( operation_id='ID example', operat
Swagger 文档说你可以这样做: https://swagger.io/docs/specification/grouping-operations-with-tags/ 但不幸的是 drf-ya
我已经安装了 drf-yasg,并且运行良好。我遇到的问题是,它是一个大应用程序,并且每种类型的前端客户端都有大量端点,即 /admin/v1、/app/v1 >, ... 所以我认为将每种类型的文档
我们有许多应用程序和端点,当我们处理某些功能时,通过 yasg 更容易向客户端公开某些端点。 目前,我正在为每个应用程序中的 swagger 定义单独的 urlpatterns 并从上层 url 聚合
在我的应用程序中,我需要有多个 Swagger 页面,其中包含多个客户端的分组端点。 我的一个客户端(路径)提供移动应用程序 API,另一个提供 Web 客户端 API。 URL 模式保存在 2 种不
class Templates(APIView): parser_classes = (FormParser,) @swagger_auto_schema(manual_paramet
我正在使用 django、django drf 和 drf-yasg 来生成编写我的 BE 并生成文档。 我有一个名为 User 的模型和一个用于用户的序列化程序: class UserSeriali
我已经设置DRF-YASG但我无法弄清楚如何配置它以显示需要身份验证的 View 。 下面是配置。 schema_view = get_schema_view( openapi.Inf
我知道在传统的 swagger YAML 文件中,我们可以定义方案: schemes: - http - https //OR schemes: [http, https] 但是,如何使用带有
我想用 drf-yasg 记录 GET 请求的输入模式和输出模式。 似乎并不容易。 @swagger_auto_schema( manual_parameters=[
我正在将我的 Django 1.11.7 迁移到 2.x。问题之一是 django-rest-swagger,现在已弃用。 drf-yasg 现在应该是 API 文档和创建的方式。我需要以类似于创建自
我正在使用 drf-yasg 作为文档,我正在使用 redoc 并且它运行良好。但我想添加 x-server 和 x-taggroups。我想为 View 设置自定义标签,并将它们添加到自己的标签组中
您好,我尝试添加到我的项目 swagger 但它返回 401 错误,请帮助我解决这个问题 这是我的路由器 from . import router schema_view = get_sche
我找不到为文件上传 API 制作架构的任何支持。 Swagger UI 必须有一个按钮,允许测试人员上传文件以进行测试。我使用 firebase 作为数据库,因此序列化程序和模型不会出现。我只使用 D
我尝试在正在使用 Django/Django REST Framework 的 API 项目上收集静态文件,但在控制台上收到此错误。错误的原因可能是什么? 加注已处理Whitenoise.storag
我是一名优秀的程序员,十分优秀!