首页 > 解决方案 > 在 Django Rest Framework 中记录字段

问题描述

我们提供了一个我们在内部使用的公共 API,但也作为一项功能提供给我们的 SaaS 用户。我有一个模型、一个 ModelSerializer 和一个 ModelViewSet。一切都正常运行,但它在 API 文档中的描述中脱口而出模型help_text

虽然这适用于某些领域,但我们希望对 API 用户更加明确,提供示例,而不仅仅是指导说明。

我意识到我可以重新定义序列化程序中的每个字段(使用相同的名称,然后只需添加一个新help_text参数,但这是非常无聊的工作。

我可以提供(例如)字段名称及其文本的字典吗?
如果没有,我如何在文档过程中进行调解以使类似的事情起作用?

另外,相关的,有没有办法为每个 Viewset 端点提供一个完整的例子?例如,显示提交和返回的内容,就像许多流行的 API 一样(以 Stripe 为例)。还是我对 DRF 的文档生成要求太多了?我应该在外部处理这一切吗?

标签: django-rest-framework

解决方案


要覆盖help_text来自模型的值,您需要使用自己的模式生成器子类并覆盖get_path_fields。在那里,您可以将视图集上的映射(如您所设想的)优先于模型字段help_text值。

在调整示例生成时 - 您可以定义一种JSON只处理原始 JSON 的语言并很容易地说明请求方面,但是,如果没有真正深入研究管道,说明响应是很困难的,因为生成的默认模式不包含响应结构数据。


推荐阅读