2016-09-06 5 views
0

클라이언트가 이전에 보내거나 작성한 트랜잭션의 상태를 쿼리하고 검색 할 수 있도록하는 새로운 REST 기반 API를 만들고 있습니다. 클라이언트가 쿼리하여 트랜잭션 상태를 확인할 수있는 기능입니다. 트랜잭션 자체는 수명주기에 걸쳐 상태를 변경할 수 있습니다. 즉 처음에는 승인 된 것이고, 나중에는 백 오피스 또는 기타 작업으로 인해 되돌릴 수 있습니다.멱등 원 API?

클라이언트가이 쿼리 API를 호출 할 때 트랜잭션의 수명주기 중에 호출 할 때마다 트랜잭션의 세부 정보와 상태 기록을 가져옵니다 (승인, 취소됨). 기타). API 응답은 호출이 이루어질 때마다 달라질 수 있습니다. 이 API는 "멱등 원 (Idempotent)"API로 자격이 있습니까?

미리 감사드립니다.

+0

내가 무엇을 묻고 있는지 잘 모르겠다면, 정교 할 수 있습니까? "Idempotent API"란 무엇을 의미합니까? – inf3rno

+0

나는 트랜잭션에 대한 검색 또는 조회 API (읽기 전용) 인 API를 구현하고있다. 그러나 트랜잭션이 리턴하는 응답은 트랜잭션의 상태 변경에 따라 달라질 수 있습니다. 따라서 페이로드 필드는 각 호출마다 다를 수 있습니다. 이 API가 멱등수라는 뜻입니까? – AKon

+0

Afaik. 이 용어는 API에는 적용되지 않습니다. 최소한 멱등하지 않은 메소드 나 연산에 대해서만 읽었습니다. 네, 단순한 GET 만 있다면 분명히 멱등수입니다. http://labs.unacast.com/2016/02/25/on-idempotency-in-distributed-rest-apis/ – inf3rno

답변

1

이 있습니다. RFC 2616: 9.1.2 Idempotent Methods에 따르면

방법은 또한 (옆으로 오류 또는 만료 문제부터) N> 0 동일한 요청 부작용이 있다는 점에서 "멱등 원"특성을 가질 수있는 것은 하나의 요청과 동일. GET, HEAD, PUT 및 DELETE 메소드는이 특성을 공유합니다. 또한, OPTIONS와 TRACE는 부작용이 없어야하며, 따라서 본질적으로 멱등수입니다.

여기에서 중요한 것은 "부작용"입니다. 요청에 따라 API의 상태가 부작용으로 변경되지 않으므로 원하는만큼의 API가 하나의 API와 동일한 효과를 가져야합니다.

+0

빠른 응답을 보내 주셔서 감사합니다. 응답 페이로드가 (트랜잭션의 상태 변경으로 인해) 각 호출에서 변경 될 수 있다는 사실은 멱등 원에 대해 중요하지 않습니다. – AKon

관련 문제