2011-01-26 2 views
1

우리는 복잡한 데이터 모델을위한 REST API를 설계하고 있습니다. 모델은 마치 나무와 같습니다.하나의 REST 호출에서 여러 작업 처리

TOPObject 
    Name: XX 
    Start Date: 01/10/2011 
    End Date: 02/18/2011 
    List 
    NestedObject 
     Name: NO1 
     Code: CCC1 
    NestedObject 
     Name: NO2 
     Code: CCC2 

클라이언트 내에서이 개체 전체를 한 화면에서 작업하고 모든 변경 사항을 한 번에 보낼 수 있습니다. 리소스를 두 개의 호출로 나누고 싶지 않습니다. 하나는 TOPObject 용이고 다른 하나는 NestedObject 용입니다. TOPObject에 대한 POST 호출을 한 번하고 싶습니다.

어떻게 계층 구조의 여러 수준을 여러 번 변경해야합니까? 예를 들어, 그들이 이런 식으로 오브젝트를 변경하면.

TOPObject 
    Name: XY /* changed */ 
    Start Date: 01/10/2011 
    End Date: 02/18/2011 
    List 
    NestedObject 
     Name: NO1 
     Code: CCC1 
    /* Notice that NesteObject NO2 was removed as well */ 
    NestedObject /* added */ 
     Name: NO3 
     Code: CCC3 

그래서 한 번의 호출에는 추가, 업데이트 및 삭제의 세 가지 별개의 작업이 있습니다. 그것들은 하나의 트랜잭션으로 수행되어야합니다.

우리는 데이터와 함께 "조치"를 보낼 생각을 가지고 있었지만, 그것은 나에게 RESTful하지 않습니다. 어떤 제안.

답변

2

실제로 NothingObject를 제거하면 필드를 업데이트하는 것으로 생각할 수 있습니다. TOPObject을 수정하면됩니다. 나는 그것이 에 대한 정보와 함께 다시 200 OK으로 돌아갈 수 있기를 원하면서 나는 TopObject과 함께 PUT (또는 POST)을 보낼 수있을 것으로 기대한다.