我有一个User
实体,如下所示:
class UserVM {
id: number;
name: string;
email: string;
}
有一个REST API可以处理用户列表,我们可以通过ID让列表更新个人用户:
GET /api/users
PUT /api/users/1 { name: ..., email: ... }
现在,我需要在用户编辑器表单中添加一个复选框,其中显示"发送更改报告"。如果选中,则更新的用户会收到一封电子邮件,说明"您的个人资料已更新"。
此复选框绝对与User
模型无关,我想知道如何在API中正确表示它。以下是我考虑的几个选项:
UserVM
和EditUserVM
,为后者添加新标记并将其用于PUT
次请求PUT /api/user/1?send=1 { ... }
此类案件的最佳做法是什么?
答案 0 :(得分:0)
由于您希望“部分”更新与用户相关的信息,因此您可以使用PATCH方法。这将是一种REST方法。
关于第二个选项:如果你添加一个不同的方法,如“/ sendtheemail”,这将是一个RPC方法。
此SO问题对您有用:Best practice for partial updates in a RESTful service