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

Django rest framework django rest框架:处理业务逻辑和返回什么?,django-rest-framework,http-status-codes,Django Rest Framework,Http Status Codes,在我的API中,一个人可以提交一个孩子的“家长”。这是常见的用例。输入父项时,始终至少输入一个子项。这在UI上是相同的。在某些情况下,用户可能希望输入一个重复的父项,例如,它已经存在于系统中。在这种情况下,在UI中,用户可以选择是否确实要添加副本,或者是否要将子项添加到现有的“重复”记录中。我希望这足够清楚 我的问题是如何通过api执行类似的“工作流”?提交副本后,应返回可添加子项的可能现有条目列表。该如何返回此列表?用什么身份代码?(实际上不是客户端错误)因此您的请求看起来像: POST /p

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


我的问题是如何通过api执行类似的“工作流”?提交副本后,应返回可添加子项的可能现有条目列表。该如何返回此列表?用什么身份代码?(实际上不是客户端错误)

因此您的请求看起来像:

POST /parents

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

{ ... }
如果“Foo”已经存在,您需要客户端选择一个现有记录并将子记录添加到该记录中,对吗?然后,类似以下的响应可能是合适的:

HTTP/1.1 409 Conflict

{
  "message": "Choose an existing parent.",
  "parents": [
    {"id": 1, ...},
    {"id": 2, ...},
    {"id": 42, ...}
  ]
}
这需要客户端重复请求,例如:

POST /parents

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

{ ... }