Rest 多次调用PUT请求

Rest 多次调用PUT请求,rest,Rest,我正在尝试访问一个REST enpoint,它在书架位置添加了一本书 PUT /bookshelf/books/1 HTTP/1.1 201 Created 现在,如果我再次尝试添加id为1的书籍 PUT /bookshelf/books/1 HTTP/1.1 500 Internal server error 我收到500个内部服务器错误,并显示响应消息 "Resource already exists, cannot add duplicate item" 现在我觉得这是不对的

我正在尝试访问一个REST enpoint,它在书架位置添加了一本书

PUT /bookshelf/books/1

HTTP/1.1 201 Created 
现在,如果我再次尝试添加id为1的书籍

PUT /bookshelf/books/1

HTTP/1.1 500 Internal server error
我收到500个内部服务器错误,并显示响应消息

 "Resource already exists, cannot add duplicate item"
现在我觉得这是不对的。这是服务器期望的正确响应类型。考虑到操作是PUT,我觉得客户端应该可以自由地一次又一次地运行PUT调用。我的理解正确吗


如果不是
500
服务器是否应该返回
HTTP/1.1200 OK

PUT是幂等的-如果多次调用它,应该得到相同的结果。i、 e.根据您的请求创建/更新对象。返回500到PUT请求,因为对象已经存在,这违反了RESTful语义。在这种情况下,我还预计会有200人返回