Rest API 设计:更新关系

Rest API design: updating relationship

我正在努力寻找 API 的最佳设计。我有 userinstitution 个对象。每个 user 只能有一个 institution,它在 users table 上由 institution_id 列表示。

我应该如何为一个会改变 institution 一个 user 注册的端点建模?

我的一些想法:

PUT /user/institution 在正文中传入新的 institution_id。

PATCH /user 更新 users

中的 institution_id

有什么建议吗?

我相信 PATCH /user updating the institution_id column in users

更好,因为您正在更新用户模型中的属性,您可以将其视为属于用户的任何其他属性,如电子邮件、地址等,因为 institution_id 是用户中的一列table.

同样使用 PUT 会导致您在更新用户时提供整个模型,这会消耗您的网络流量。

顺便说一句,当使用 PATCH 时,您只提供要更新的属性,而使用 PUT 时,您提供整个用户模型.

来自 2 个动词 (PUT 和 PATCH)的 return 数据应该是整个模型,而不仅仅是更新的属性。