MVC.NET을 사용하여 RESTful API를 작성하여 비즈니스 시스템에 대한 외부 액세스를 허용합니다. API에는 검색 리소스가 포함되어 있습니다. 리소스는 "/ example/search/pages/1 /? query = something"URI 형식을 취합니다.RESTful API에서 검색 자원에 대한 캐시 제어 정책
예 : 피자를 검색하려면 "/ example/search/pages/1 /? query = pizza"URI에 액세스하면 처음 10 개의 결과가 표시됩니다. 결과의 두 번째 페이지를 얻으려면 "/ example/search/pages/2 /? query = something"등을 요청하십시오.
캐시 제어 HTTP 헤더를 사용하여 모든 리소스를 공개 캐싱 할 수있었습니다. 이 API는 API 웹 응용 프로그램을 제공하는 서버의 부하를 대폭 줄이는 데 목적이 있습니다.
그러나 검색 리소스에 사용할 캐싱 정책을 모르겠습니다. 자원 (및 그것의 URI)은 당신이 검색하는 것에 따라 다양하기 때문에, 페이지를 캐싱하는 것이 거의 없다. RESTful API에서 검색 리소스에 대해 추천하는 캐싱 정책 (예 : 캐시 제어 HTTP 헤더를 통한 캐싱)은 무엇입니까? 캐싱이 없습니까? 만료 시간이 매우 짧은 개인 캐싱? 짧은 만료를 가진 공개 캐싱?
-1? PRG는 매우 잘 알려진 패턴 검색입니다. – SerialSeb
나의 초기 반응은 POST를 이런 방식으로 사용하는 것이 매우 RESTful하지 않다는 것입니다.즉, 새로운 검색 요청을 생성하는 것으로 검색 리소스에 게시하고 리디렉션이 검색 요청 또는 검색 핸들 리소스에 있다고 생각하면 이것이 어떻게 RESTful이며 리소스 지향적으로 만들어 졌는지를 알 수 있습니다. 즉, POST 동사의 비 RESTful 사용을 서면으로 작성한 응답으로 생각합니다. – toolbear
아뇨, 그렇지 않습니다. POST에서 리소스를 생성하고 리다이렉트 할 수있는 post-redirect-get 패턴을 모델링합니다. 예를 들어 여기서 복잡한 내용을 사용할 때처럼 말입니다. 자세한 내용은 http://en.wikipedia.org/wiki/Post/Redirect/Get을 참조하십시오. ReST의 정의에서 * 아무 곳이나 * POST가 할 수있는 일과 할 수없는 일에 대한 토론이 없습니다. 날 믿지 않니? http://roy.gbiv.com/untangled/2009/it-is-okay-to-use-post – SerialSeb