部分对象更新
Partly object update
如何部分更新对象?
例如创建对象"project":
curl -X POST -H "Content-Type:application/json" -d '
{ "name":"Project 1", "number": 123 }
' localhost:8080/myapp/projects
{
"id" : 79,
"number" : "123",
"name" : "Project 1",
"_links" : {
"self" : {
"href" : "http://localhost:8080/myapp/projects/79"
},
"project" : {
"href" : "http://localhost:8080/myapp/projects/79"
}
}
}
并更新此项目:
curl -i -X PUT -H "Content-Type:application/json" -d '
{ "number": 124 }
' localhost:8080/myapp/projects/79
{
"id" : 79,
"number" : "124",
"name" : null,
"_links" : {
"self" : {
"href" : "http://localhost:8080/myapp/projects/79"
},
"project" : {
"href" : "http://localhost:8080/myapp/projects/79"
}
}
}
属性 "name" 现在为空。
如果 属性 未在更新请求中设置,如何设置旧值对象 属性?
我正在为 ProjectRepository 使用 @RepositoryRestResource 注释来指示 Spring MVC 在 /projects
创建 RESTful 端点
解决方法:使用PATCH http方式。
curl -i -X PATCH -H "Content-Type:application/json" -d '
{ "number": 124 }
' localhost:8080/myapp/projects/79
{
"id" : 79,
"number" : "124",
"name" : "Project 1",
"_links" : {
"self" : {
"href" : "http://localhost:8080/myapp/projects/79"
},
"project" : {
"href" : "http://localhost:8080/myapp/projects/79"
}
}
}
如何部分更新对象?
例如创建对象"project":
curl -X POST -H "Content-Type:application/json" -d '
{ "name":"Project 1", "number": 123 }
' localhost:8080/myapp/projects
{
"id" : 79,
"number" : "123",
"name" : "Project 1",
"_links" : {
"self" : {
"href" : "http://localhost:8080/myapp/projects/79"
},
"project" : {
"href" : "http://localhost:8080/myapp/projects/79"
}
}
}
并更新此项目:
curl -i -X PUT -H "Content-Type:application/json" -d '
{ "number": 124 }
' localhost:8080/myapp/projects/79
{
"id" : 79,
"number" : "124",
"name" : null,
"_links" : {
"self" : {
"href" : "http://localhost:8080/myapp/projects/79"
},
"project" : {
"href" : "http://localhost:8080/myapp/projects/79"
}
}
}
属性 "name" 现在为空。 如果 属性 未在更新请求中设置,如何设置旧值对象 属性?
我正在为 ProjectRepository 使用 @RepositoryRestResource 注释来指示 Spring MVC 在 /projects
创建 RESTful 端点解决方法:使用PATCH http方式。
curl -i -X PATCH -H "Content-Type:application/json" -d '
{ "number": 124 }
' localhost:8080/myapp/projects/79
{
"id" : 79,
"number" : "124",
"name" : "Project 1",
"_links" : {
"self" : {
"href" : "http://localhost:8080/myapp/projects/79"
},
"project" : {
"href" : "http://localhost:8080/myapp/projects/79"
}
}
}