我有一个使用Django和Django REST Framework构建的API。我有一个模型返回一些构建的JSON,它与典型的Django模型不对应。因此,似乎利用Django模型知识的自动文档功能对我的一些观点不起作用。
特别是,我有一个viewset返回一些典型的API视图(如对象列表),以及一些返回一些自定义对象的视图。我想为这些自定义对象构建文档,但我不确定如何覆盖视图集中特定端点的架构。如何覆盖为DRF视图集中的单个视图生成的模式?
DRF seems to provide this functionality for views,但我想为Viewsets做同样的事情。
答案 0 :(得分:6)
好的,经过大量的尝试-失败-重试,我终于使它起作用了-您失去了一些自动(魔法)自省功能,例如id
路径参数和从文档字符串获取的描述,但我仍然认为这是值得的:
custom_schema = ManualSchema(
fields=[
coreapi.Field(
"id",
required=True,
location="path",
schema=coreschema.String(
title="ID",
description="Foobar ID.",
)
),
coreapi.Field(
"foobar",
location="query",
schema=coreschema.String(
title="Foobar",
description="Foobar?",
)
),
],
description="Foobar!",
)
class FoobarViewSet(viewsets.ReadOnlyModelViewSet):
@action(methods=["get"], detail=True, schema=custom_schema)
def foobar(self, request, id=None):
...