django-rest-framework:处理业务逻辑和返回什么?



在我的API中,一个人可以提交带有1个孩子的"父"。这是常见的用例。输入父级时,始终至少输入一个子项。这在 UI 上是相同的。在某些情况下,用户可能想要输入重复的父项,例如。它已存在于系统中。在这种情况下,在 UI 中,用户可以选择是确实要添加重复项,还是要将子项添加到现有的"重复"记录之一。我希望这已经足够清楚了。

我的问题是我如何通过 API 执行类似的"工作流"?提交副本后,它应返回可以添加子项的可能现有条目的列表。应如何返回此列表?使用什么状态代码?(不是真正的客户端错误(

所以你的请求看起来像这样:

POST /parents
{"name": "Foo", "child": { ... }}

如果"Foo"已经存在,您需要客户端选择一个现有记录并在那里添加子记录,对吗?那么这样的响应可能是合适的:

HTTP/1.1 409 Conflict
{
"message": "Choose an existing parent.",
"parents": [
{"id": 1, ...},
{"id": 2, ...},
{"id": 42, ...}
]
}

这要求客户端对以下内容重复请求:

POST /parents/42/children
{ ... }

最新更新