2010-03-01 4 views
0

언젠가는 실제 웹 서비스와 같은 것에 대해 내 응용 프로그램을 실행하려고 할 것입니다. 웹 서비스에는 타격을 볼 수있는 API 호출 제한이 있습니다. 일부 JSON 파일을 수동으로 직렬화하는 것을 고려했지만 기본적으로 어려운 방식으로 캐싱하는 것처럼 보입니다.API 제한된 웹 서비스 개발에 적합한 HTTP 캐시가 있습니까?

로컬 컴퓨터에서 실행할 수있는 HTTP 캐시가 있나요? (수동으로 재설정 할 때까지) 적극적으로 캐시 요청을 특정 사이트로 보내겠습니까?

답변

0

"캐시"라고 말하면서 "필터"또는 "프록시"를 의미한다고 생각합니다. 가장 먼저 떠오르는 솔루션은 iptables system이며, -limit 및 -hitcount 규칙을 사용하여 웹 서버에 패킷을 몇 가지 임계 값 후에 드롭 할 수 있습니다. 나는 iptables 설정에 유능한 척하지 않을 것이다.

두 번째 과정은 delay pool mechanism을 사용하는 Squid와 같은 웹 프록시 일 수 있습니다. 거기에서도 학습 곡선을 기대하십시오.

+0

프록시로 구현 될 것이라고 가정했습니다. 나는 오징어를 보았지만 적절한 예제 구성을 보지 못했습니다. 나는 시간을 내면 내가 찌를거야. –

0

저는 개발 요청을 처리하고 API 호출이 테스트에 방해받지 않도록 보장하는 프록시 서버를 구축했습니다. 이것은 내가 내 ASP.Net MVC 프록시와 함께 할 방법이다 : 나는 지금 내가 내 머리를 정상이를 해제하고 있어요 내 개발 상자에 아니에요

public ActionResult ProxyRequest(string url, string request) 
{ 
    object cachedRequest = Cache[url]; 
    if(cachedRequest != null) 
    { 
     return Content(cachedRequest, "application/json"); 
    } 
    else 
    { 
     // make the http request here 
     Cache[url] = cachedRequest; 
     return Content(cachedRequest, "application/json"); 
    } 
} 

하지만 개념은 동일합니다 . Cache [url] = cachedRequest를 사용하는 대신 Cache.Insert 메서드를 사용합니다. 그러나 기억할 수없는 많은 매개 변수가 있습니다. (게으르며 주위에 래퍼 클래스를 만들었 기 때문에 기억하지 않아도됩니다.)

이 설정은 내 JS 코드에 var isDevelopment = true (|| 거짓)을 사용하여 내 JSON 요청을 모두 프록시 처리하고 isDevelopment 변수는 요청을 프록시 처리할지 또는 서버에 직접 응답할지 여부를 알 수 있습니다.

+0

불행히도, 나는 ASP가 아니며 약간의 학습 곡선이 될 것입니다. 다른 사람에게 유용 할 수도 있습니다. –

관련 문제