Java 仅允许将某些字段放入REST API(Spring)

Java 仅允许将某些字段放入REST API(Spring),java,spring,rest,put,Java,Spring,Rest,Put,我有一个具有以下端点的RESTAPI:/item 用户可以使用以下数据发布到端点(示例): 创建项目后,他们可以发送PUT请求以更新项目,但他们只能更改标题和类别,而不能更改youtube\u url 我目前正在使用Spring。但是,我不确定这种情况下的最佳做法是什么。只需检查您的PUT请求是否只有标题和类别。如果有其他东西返回400错误请求如果您是此API的创建者和设计者,您可以做任何您想做的事情并记录它 一些选择: 只需悄悄地忽略不可变字段,同时更新后端中的其余字段 将所有接收到的字段与现

我有一个具有以下端点的RESTAPI:
/item

用户可以使用以下数据发布到端点(示例):

创建项目后,他们可以发送PUT请求以更新项目,但他们只能更改
标题
类别
,而不能更改
youtube\u url


我目前正在使用Spring。但是,我不确定这种情况下的最佳做法是什么。

只需检查您的PUT请求是否只有
标题
类别
。如果有其他东西返回
400错误请求

如果您是此API的创建者和设计者,您可以做任何您想做的事情并记录它

一些选择:

  • 只需悄悄地忽略不可变字段,同时更新后端中的其余字段
  • 将所有接收到的字段与现有字段进行比较,如果修改了一些不可变字段,则返回HTTP代码400
  • 使用完全不同的PUT请求结构,即-不接受包含不可反序列化字段的请求。例如,在第一种情况下,使用包含3个字段的
    NewItemRequestDTO
    ,在第二种情况下,使用仅包含2个字段的
    UpdateItemRequestDTO
    ,并将验证委托给您使用的JSON映射库
  • 无论您选择什么解决方案,最重要的部分是在API中记录它

    POST /item:
    {
        "title": "This is a title",
        "category": "fake-category",
        "youtube_url": "http://www.youtube.com/fakeID"
    }