Spring HTTP-状态代码

Spring HTTP-状态代码,spring,web-services,rest,http,http-status-codes,Spring,Web Services,Rest,Http,Http Status Codes,我使用的是Spring Boot和控制器,我觉得很难处理一些错误,因此我对以下每种情况下最合适的状态有一些疑问: 放置对象无Id 将URLlocalhost:8080/users/1与不带Id属性的JSON放在一起 PUT具有不同参数Id的对象 将URLlocalhost:8080/users/1与Id为2的JSON放在一起,即与参数中传递的内容不同 获取带有无效参数的 进入URLlocalhost:8080/users/search?sex=ABC,或者系统的性别无效(正确的是sex=male

我使用的是Spring Boot和控制器,我觉得很难处理一些错误,因此我对以下每种情况下最合适的状态有一些疑问:

  • 放置对象无Id
  • 将URLlocalhost:8080/users/1与不带Id属性的JSON放在一起

  • PUT具有不同参数Id的对象
  • 将URLlocalhost:8080/users/1与Id为2的JSON放在一起,即与参数中传递的内容不同

  • 获取带有无效参数的
  • 进入URLlocalhost:8080/users/search?sex=ABC,或者系统的性别无效(正确的是sex=male还是female?)

  • id为的JSON POST

  • 执行POST以持久化id为的数据(创建)。

    案例1。Id在uri中:无错误

    案例3。“400错误请求”是可以接受的。(客户端不应重试完全相同的请求)

    案例2。四,。只需忽略正文中的Id并返回200或返回“400错误请求”


    请注意,id不应被视为资源的属性:它是资源标识符的一部分。

    案例1。Id在uri中:无错误

    案例3。“400错误请求”是可以接受的。(客户端不应重试完全相同的请求)

    案例2。四,。只需忽略正文中的Id并返回200或返回“400错误请求”


    请注意,id不应被视为资源的属性:它是资源标识符的一部分。

    这里有什么问题吗?要为这些操作返回什么状态代码?另外,在数字1中,看起来您确实给了用户一个id。在第二个问题中,你用的是id 1,而不是id 2。这里有个问题你想问吗?要为这些操作返回什么状态代码?另外,在数字1中,看起来您确实给了用户一个id。在第二个例子中,你用的是id 1,而不是id 2