Apigee ResponseCache policy은 정책이 응답 흐름에서 발견 될 때 자동으로 전체 응답을 캐시합니다. 응답이 캐시에 저장된 시간을 포함하는 접근 가능한 변수가 있다고 나는 믿지 않는다. 그러나이를 수행 할 수있는 방법이 있습니다.
먼저 ResponseCache 플로우를 요약 해 보겠습니다. ResponseCache 정책 RC1이 있다고 가정 해보십시오. 요청 및 응답 흐름에 배치합니다. 여기서 도면이다
-->[P]-->[P]-->[P]-->[RC1]-->[P*]-->[P*]-->[P*]-->
CLIENT v TARGET
<--[P]<--[P]<--[P]<--[RC1]<--[P*]<--[P*]<--[P*]<--
플로우가 요청 된 흐름 RC1 도달
가 캐시 키가 이미 구축 된 상기 응답 캐시 대응하는 캐시 된 응답에 대해 체크된다.
캐시 실패의 경우 모든 정책 (P, P * 및 RC1)이 실행됩니다. 응답 흐름에서 RC1에 도달하면 전체 응답이 캐시에 저장되고 흐름이 계속됩니다.
캐시 적중이 발생하면 P 및 RC1 정책 만 실행됩니다. P * 정책은 건너 뛰고 대상 서버를 호출하지 않습니다.
캐시 정책과 달리 ResponseCache의 캐시에있는 항목을 정의하지 않아도됩니다. 전체 응답입니다. 그러나 응답에 추가하여 자신의 데이터를 추가 할 수 있습니다.
응답 흐름에서 응답 RC1 정책이 호출되기 바로 전에 현재 시간 (system.time)으로 응답에 헤더를 추가하십시오. 응답은 사용자 정의 헤더와 함께 캐시됩니다. 그런 다음 RC1 정책에 응답 한 후 응답에서 시간 헤더를 추출하고 제거합니다. 현재 system.time을 사용하여 응답이 캐시에 있었던 기간을 계산할 수도 있습니다.
- 난 그냥 캐시 항목이 응답에 얼마나 오래된 반환해야합니다. – user3254312