【发布时间】:2019-07-26 05:11:46
【问题描述】:
我可以在 /user/{username} URL 上获取用户的数据并且响应是
{
"id" : 1,
"username" : "testuser",
"email" : "test@example.org"
}
在我的实现中,如果您在 /user/{username} URL 上放置数据,后端将使用指定的用户名创建或更新用户。
当后端在 /user/foo 之类的 URL 和 http 有效负载中获取用户名时,处理这种情况的正确方法是:
{
"id" : 1,
"username" : "bar",
"email" : "test@example.org"
}
我应该返回 409 - Conflict 还是应该使用负载中的用户名创建或更新用户?
【问题讨论】:
-
这个问题是见仁见智的问题,所以这是我的问题。您不应允许通过两个不同的操作进行相同的操作。我构建它的方式是在 /user 上实现 PUT 以创建新用户,并在 /user/{username} 上实现 PATCH 以进行更新。任何请求都不应包含重复的参数,无论是在 URL 还是 HTTP 负载中。