2012-03-21 4 views
0

RDBMS에서 초안 상태로 저장된 송장이 있다고 가정합니다. 송장에는 3 개의 개별 항목이 있습니다. 나머지 고객은 인보이스를 받고 광고 항목을 수정합니다. 다음/송장/123PUT 요청에서 중첩 데이터를 업데이트하는 방법

{ 
    "InvoiceId" : "123", 
    "lineitems": 
    [ 
     { "id":"A", "qty":"5"}, 
     { "id":"B", "qty":"5"}, 
    ] 
} 

사용자 가정

GET 인보이스를 변경; 항목의 변경 수량은 는 항목 B. 새로운 항목 C.

결과는 추가 제거 :

{ 
    "InvoiceId" : "123", 
    "lineitems": 
    [ 
     { "id":"A", "qty":"10"}, 
     { "id":"D", "qty":"5"},  
    ] 
} 

순 변화는 라인이 삭제 된 라인이 업데이트되었습니다하고 있다는 것입니다 라인이 추가되었습니다.

사용자가 초안 송장을 저장하면 PUT 요청이 발생합니다.

PUT/송장/123

서버의 라인 항목을 업데이트 할 수있는 최선의 전략은 무엇입니까?

감사합니다,

답변

0
을 (마지막 ...에 의해 수정, 만든 사람, 만든 날짜) 모든 개별 항목을 삭제 중 및 그 라인에 대한 메타 데이터를 잃어 버리게된다 처음부터 그들을 만드는 염두에

유지

PUT 메서드는 동봉 된 엔터티에 제공된 Request-URI로 저장되도록 요청합니다.

http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html

교체로 PUT 생각합니다. PUT 요청의 리소스 상태는 리소스가 수용되는 경우 결과 상태 여야합니다.

특정 요소를 추가/제거/업데이트하려면 PATCH을 사용하십시오.

+0

하위 리소스를 사용한 모델링은 다른 방법으로, 변경된 비트가 직접 업데이트되도록 허용합니다. –

관련 문제