1

RoR (3.2)로 작성된 작은 REST API에서 작업 중이므로 Varnish Cache 인스턴스 뒤에서 사용할 것입니다.RoR을 사용하여 데이터를 헤더로 렌더링

이 API는 Varnish의 cURL VMOD에 의해 호출되어 사용자 수 제한을 처리합니다.

큰 문제는 헤더를 제외하고 Varnish가 HTTP 데이터를 제대로 처리하지 못한다는 것입니다.

그래서 데이터 필드를 HTTP 헤더 (최대 3 필드)로 반환하고 싶습니다. 그러나 적절한 MVC 방식으로이 작업을 수행하는 방법에 대해 잘 모르겠습니다.

헤더를 유효한보기 또는 렌더링 형식으로 간주 할 수 있습니까?

머리글을 컨트롤러 또는보기에 써야합니까? (반환 된 데이터가 2 개의 모델에서 온다는 것을 알고 있음).

향후 html 및 json 출력을 처리해야합니다.

나는이 어쨌든 더러운 해킹 될 것입니다 알고 있지만, 날 믿어 : 더 악화 JSON 또는 XML에 응답 본문에서 작동하도록 니스를 요구, 더 더러운 10 배 것 ...

감사합니다!

답변

1

View 파이프 라인을 호출하지 않고도 가벼운 어플리케이션을 원한다면 헤더에 고정하십시오.

API 호출은 헤더를 사용하여 정보를 클라이언트로 보냅니다 (간단하게 유지).

HTTP 헤더가 본문 앞에 오기 때문에보기를 호출하기 전에 헤더를 컨트롤러에 작성해야합니다.

현재 뷰에 대해 render => :nothing을 수행 할 수 있으며 json 또는 xml을 통합하려면 respond_to 액션을 추가 할 수 있습니다.

+0

고마워요! 나는 "render => : nothing"에 대해 몰랐다. 뷰 파이프 라인을 사용하지 않으면이를 우회 할 수 있습니다. 내가 생각하기에 컨트롤러에는 헤더를 써야합니다. 그러나 "헤더 버전"은 어떻게 요구합니까? 헤더를 요청하는 MIME 유형은 없습니다. URL ".headers"확장자로 요청한 형식을 지정해야합니까? 아니면 다른 방법이 있습니까? 컨트롤러의 –

+0

요청 개체에 필요한 세부 정보가 있습니다. 형식은 요청 된 사용자 작업을 통해 설정할 수 있습니다. http://apidock.com/rails/ActionController/MimeResponds/InstanceMethods/respond_to를 참조하십시오. – Sairam

0

나는 이것이 컨트롤러에서 설정할 수있는 것이라고 말하고 싶습니다. 그것은 당신을 도움이된다면 이것 좀 봐, 그리고 참조 : 내가 컨트롤러에이 일을 제안

http://work.j832.com/2008/10/ruby-rails-render-and-content-type-http.html

, 헤더는 렌더링 뷰의 독립적 인 것입니다 것처럼 소리가 난다.

+0

이 링크는 내 문제가 아닌 http 헤더를 쓰는 구문을 실제로 설명합니다. Content-Type 변경은 REST API에서 매우 일반적입니다. o) –

관련 문제