필자는 GET에 있던 버전 번호를 PUT 호출로 다시 전달하여 데이터베이스 테이블에 일대일 매핑하는 내 REST 리소스에 대해 낙관적 잠금을 구현했습니다. GET과 PUT을 수행 한 시간 사이에 데이터베이스에서 버전 번호가 변경되면 낙관적 인 잠금 예외가 발생했습니다. 아주 심플한 디자인.REST에서 어떻게 거친 낙관적 잠금을 구현합니까?
이제 여러 데이터베이스 테이블에 매핑되는 복합 REST 리소스에 대해 어떻게해야합니까? 여러 개의 버전 필드 (복합 리소스와 관련된 각 데이터 테이블에 하나씩)를 전달하지 않아도됩니다. 복합 자원의 단순한 예는/FooBar입니다. 여기서/Foo 및/Bar는 비 복합 자원입니다.
나는 기본적으로 파울러의 거친 그레인 잠금 패턴의 REST 구현의 예를 찾고 있어요 : http://martinfowler.com/eaaCatalog/coarseGrainedLock.html
REST 서비스에서 버전을 수집하여 버전을 나타내는 고유하게 생성 된 ID가 입력되는 맵에 넣을 수 있습니까? 그런 다음 클라이언트에게 보내서 수정 한 후에 다시 보내야합니까? 그런 다음 해당 id를 사용하여 엔티티 그래프의 버전을 가져올 수 있습니다. –