【发布时间】:2020-08-10 16:29:12
【问题描述】:
我有一个表 mytable(a int ,b int ,c varchar)。 用户可以发送请求
PUT myapi/mytable/{id}
Request body : {'a':1}
PUT myapi/mytable/{id}
Request body : {'b':2}
PUT myapi/mytable/{id}
Request body : {'c':"hello"}
如何编写这个单一的通用更新 API 来更新请求中指定的字段以及给定“id”的关联值,我尝试接收对象并选择非空字段进行更新,有没有更好的方法?
【问题讨论】:
-
我认为接收对象并选择非空字段是一个糟糕的主意。导致原始类型无法正常工作。因为他们会有一个默认值。
-
关于 PUT 的备注:根据RFC 7231,put 不应用于部分更新(如果它不适用于您的情况,您可以忽略此评论,但您的示例建议部分更新)。
-
@Hamza 是的,我通过制作包装对象来处理这个问题,比如,我不使用 class Mytable{Integer a;整数 b;字符串 c;}
-
@SANTHOSKUMAR 如果你找到更好的方法,请告诉我。
-
您可以使用不为空设置的 moddelmapper
标签: java spring hibernate rest