2015-06-27 67 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

仍然感興趣;) –

相關問題