Rails를 사용하여 웹 서비스를 통해 데이터를 JSON 형식으로 노출하려면 어떻게 해야 합니까?

StackOverflow https://stackoverflow.com/questions/57665

문제

Rails를 사용하여 JSON으로 웹 서비스 클라이언트에 데이터를 반환하는 쉬운 방법이 있습니까?

도움이 되었습니까?

해결책

Rails 리소스는 모델에 대한 RESTful 인터페이스를 제공합니다.어디 보자.

모델

class Contact < ActiveRecord::Base
  ...
end

노선

map.resources :contacts

제어 장치

class ContactsController < ApplicationController
  ...
  def show
    @contact = Contact.find(params[:id]

    respond_to do |format|
      format.html 
      format.xml {render :xml => @contact}
      format.js  {render :json => @contact.json}
    end
  end
  ...
end

따라서 이는 필요한 응답 유형을 얻기 위해 특별한 메소드를 정의할 필요 없이 API 인터페이스를 제공합니다.

예.

/contacts/1 # Responds with regular html page

/contacts/1.xml # Responds with xml output of Contact.find(1) and its attributes

/contacts/1.js # Responds with json output of Contact.find(1) and its attributes

다른 팁

Rails Monkey는 여러분이 갖고 싶은 대부분의 것들을 패치합니다. #to_json 방법.

내 머릿속에서 해시, 배열 및 ActiveRecord 객체에 대해 이를 수행할 수 있으며 이는 원하는 사용 사례의 약 95%를 포괄해야 합니다.자신만의 사용자 정의 개체가 있는 경우 직접 작성하는 것이 쉽지 않습니다. to_json 데이터를 해시에 넣은 다음 JSON화된 해시를 반환할 수 있는 메서드입니다.

이 기능을 수행하는 플러그인이 있습니다.http://blog.labnotes.org/2007/12/11/json_request-handling-json-request-in-rails-20/

제가 알기로는 이 기능은 이미 Rails에 있습니다.하지만 해당 블로그 게시물을 보면 코드 예제와 설명이 있습니다.

ActiveRecord는 JSON과 상호 작용하는 메서드도 제공합니다.AR 객체에서 JSON을 생성하려면 object.to_json을 호출하면 됩니다.JSON에서 AR 개체를 생성하려면 새 AR 개체를 생성한 다음 object.from_json을 호출할 수 있어야 합니다.내가 이해하는 한, 이것은 나에게 효과가 없었습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top