2017-12-22 8 views
1

끝없는 JSON 객체 시퀀스로 응답하는 API 끝점이 있습니다. LikeSiesta는 HTTP long polling을 지원합니까?

GET /commands?since=112233 {"cmd": "mycommand", "params": [...]} {"cmd": "othercommand", "params": [...]} ... 세션은 거의 끝나지 않습니다 (서버는 결국 시간 초과 설정이 있지만 일반적으로 값은 수십만 초입니다).

Siesta와 같은 API를 사용할 수있는 방법이 있습니까?

답변

1

아니요, Siesta가 직접 지원하지 않습니다. Siesta의 기본 가정은 URL이 (유한) 상태의 리소스이며 시간 경과에 따른 해당 상태의 변경 사항을 관찰하고자한다는 것입니다. 따라서 Siesta는 실제로 구문 분석을 시작하기 전에 완전 구체화 된 응답을 기대하므로 &이 결과를 게시합니다. 당신이 설명하는 것은 단지 Siesta의 모델에 맞지 않는 HTTP의 다른 사용법입니다.

자 이제 얻는 JSON 객체의 시퀀스가 ​​시간이 지남에 따라 변경되는 연속 리소스의 시퀀스를 나타내는 것으로 합리적으로 해석 될 수 있다면 자신의 네트워크 호출을 외부로 만들 수 있습니다 Siesta를 선택한 다음 Resource.overrideLocalData(…)을 사용하여 업데이트가 도착하면 게시합니다.

은 당신이 준 샘플 데이터를 보면, 그러나,이 더 행동 또는 이벤트 상태의 순서보다는의 순서처럼 보인다. 시에스타의 세계에 대한 자원 중심적 시각은 그 점에 적합하지 않을 수 있습니다. Siesta는 "물건 X의 현재 상태는 무엇입니까?"라는 질문이 API에 의미 있고 자연스러운 질문 인 경우 가장 도움이됩니다.

+0

감사합니다. JSON 객체는 실제로 동작이지만 이러한 동작은 클라이언트에 로컬로 저장된 상태에 대한 업데이트입니다. 그것은 일종의 "다른 방향으로 벗어난 나머지"입니다. 그러므로'overrideLocalData (...)'advice가 작동 할 수도 있습니다. – kikap