【发布时间】:2020-02-21 08:33:10
【问题描述】:
我正在使用drf-yasg 来记录文档,我正在使用redoc,它运行良好。但我想添加x-server 和x-taggroups。我想为视图设置自定义标签,并将它们添加到他们自己的标签组中,但我在文档中找不到任何关于此的内容,我该怎么做?
【问题讨论】:
标签: django documentation openapi drf-yasg redoc
我正在使用drf-yasg 来记录文档,我正在使用redoc,它运行良好。但我想添加x-server 和x-taggroups。我想为视图设置自定义标签,并将它们添加到他们自己的标签组中,但我在文档中找不到任何关于此的内容,我该怎么做?
【问题讨论】:
标签: django documentation openapi drf-yasg redoc
您可以通过子类化 OpenAPISchemaGenerator 在架构中包含任意额外数据(例如 x-server 和 x-tagGroups 供应商扩展)。
class MyOpenAPISchemaGenerator(OpenAPISchemaGenerator):
def get_schema(self, request=None, public=False):
# Get the Swagger object generated by the superclass
swagger = super().get_schema(request, public)
# Add any extra fields you want
swagger['x-tagGroups']=[{
'name': 'My Group 1',
'tags': ['myTag1', 'myTag2']
},{
'name': 'My Group 2',
'tags': ['myTag1', 'myTag2', 'myTag3']
}]
return swagger
然后,确保在获取 SchemaView 类时提供自定义生成器类:
schema_view = get_schema_view(
openapi.Info(
title="Your API",
default_version='v1',
description="Your description",
),
public=True,
generator_class=MyOpenAPISchemaGenerator, # <--- Don't forget this
permission_classes=[permissions.AllowAny],
)
【讨论】: