2015-06-27 76 views
2

This tutorial阵营+流动背靠Rails的API,由花式像素,说:Rails的API:让应用程序控制器服务JSON

现在,我们需要使其继承 从ActionController的更改应用程序控制器:: API,并亲吻protect_from_forgery再见。 由于我们只服JSON,它是有道理的

respond_to :json 

添加到applciation控制器,有助于干燥全力以赴。虽然我们在 它,我们不妨删除资产和视图文件夹,我们不会 需要它们。

我不知道我应该做什么。

这是我的应用程序控制器的样子:

class ApplicationController < ActionController::API 
    respond_to :json 
end 

它是正确的吗?

而且,我应该保留或删除protect_from_forgery with: :null_session

class ApplicationController < ActionController::API 
    protect_from_forgery with: :null_session 
    respond_to :json 
end 
+1

当你说服务JSON时,你想要什么?这可以阅读为要么把它或返回 – ZubatMan

+0

我不知道我可以回答你的问题。本教程的目标是使用Rails构建后端,前端使用ReactJS,并让两者都与JSON进行通信。这是否清理了事情? –

+1

是的,它:)现在应答 – ZubatMan

回答

3

从任何Rails的后端(甚至不需要只是一个API)所有你所要做的就是写在你的API的控制器以下(一个或多个)进行通信:

class Api::V1::SearchController < ApplicationController 
#Run an Authentication Method on their API Key 
before_action :authenticate 

    def search 
    #Performs your backend logic 
    content_array = get_content_method 
    render :json => content_array 
    #Renders up a JSON that you can retrieve with an HTTP get request 
    end 
end 

而且在提供数据的话题,你可以在一个模糊的JSON发送您的参数,可以让你隐藏你的API密钥,从而保护您免受不必要的访问。我最喜欢的方式是使用.to_query方法发送必要的参数。我已经做了,像这样:

BASE_URL = "http://yourwebsite.com/search?" 

def generate_search_url(params) 
    BASE_URL + params.to_query + "&Api-Key=#{ENV['API-KEY']}" 
end 

这样你就可以用你给予就像任何其他的PARAMS数据的工作,但它会更难以滥用API没有授予关键。

+0

谢谢,这有很大的帮助。我肯定会喜欢从Rails API发送JSON的更多细节。 –

+1

对不起,我实际上有一个输入错误,我可以给它更多的信息发送到Rails API,而不是:P这应该是在应用程序之间来回发送数据的基本情况 – ZubatMan

+0

仍然感兴趣;) –

相关问题