이되는 후속 질문 : Transactions in REST?REST의 복잡한 트랜잭션?
가 어떻게 그것을 클라이언트의에 전체 트랜잭션 기능을 제공하는 REST API를 구현 하는가? 클라이언트가 다음 작업을 할 것입니다 트랜잭션을 생성하고자하는 경우
예를 들어, :
- 하나 이상의 개체를 만들 수 있습니다.
- 하나 이상의 개체를 업데이트하십시오.
- 하나 이상의 개체를 삭제하십시오. 이 트랜잭션에 대한 올바른 요구 사항이지만
, POST 업데이트 만들 PUT 사용하는 REST 요구 사항을 끊고 삭제하려면 삭제를 보인다.
현재 솔루션은 전체 시스템을 하나의 계층 적 개체 구조로 처리하고 POST 작업을 사용합니다. 예를 들면 :
POST /system
{
"Users" : [
{
"ID":"123",
"name":"bob"
// update the user with ID matching 123,
// set his name to "bob"
},
{
"ID":"456",
"delete":"true"
// trigger a delete on user with ID 456
}
],
"Products" : [
{
"name":"foo"
// create a product named "foo" since no ID is provided
},
]
}
지금까지 정말 데이터의 조각되지 않습니다 "삭제"플래그를 제외하고이 만족 대부분의 REST 요구 사항.
누군가 더 좋은 해결책을 찾았는지 궁금합니다.
[이 질문에 대한 답변] (http://stackoverflow.com/questions/147207/transactions-in-rest) 단일 작업으로 업데이트 한 다음 제출하는 서버 쪽 트랜잭션 개체를 사용하는 것이 좋습니다. 물론 단점도 있습니다. –
예, 수행 할 작업의 순차적 목록을 포함하는 "트랜잭션"개체에 대한 제안을 읽었습니다. 현재 솔루션은 실제로 애플리케이션 도메인에 매핑되지 않는 가상 "트랜잭션"객체보다 REST 철학에 훨씬 가깝다고 생각합니다. 그러나 트랜잭션 오브젝트에는 각 단계를 실행해야하는 순서를 명시 적으로 지정하는 추가 이점이 있습니다. –