2016-05-01 97 views
0

如何部分更新對象?部分對象更新

例如創建對象 「項目」:

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" 
    } 
    } 
} 

的 「名稱」 屬性現在爲空。 如果此屬性未在更新請求中設置,如何設置舊值對象屬性?

我使用@RepositoryRestResource標註爲ProjectRepository直接的Spring MVC創建RESTful端點在/項目

回答

0

解決方法:使用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" 
    } 
    } 
}