2016-04-12 10 views
1

私はAPIとして実行したいいくつかのコードを持つrailsプロジェクトを作成しました。私はrails-api gemを使用しています。Ruby API - パラメータを受け入れてスクリプトを実行

ファイルは、app/controllers/api/stats.rbにあります。

このスクリプトを実行し、jsonの出力を返すには、このようなリンク(http://sampleapi.com/stats/?location=USA?state=Florida)を参照してください。

私のプロジェクトを設定して、そのリンクにアクセスするとコードが実行されるようにするにはどうすればよいですか?

+0

私はあなたが 'http://sampleapi.com/stats/?location=USA&state=Florida '。 URLクエリ文字列は、単一の "?"クエリ文字列をパスから区切ります。 – jwadsack

+0

チップをありがとう –

答えて

1

ファイルがstats_controller.rbapp/controllers/api/stats_controller.rb

と呼ばれるべきであるあなたは、あなたのコードは、アクセスし

get 'stats' => 'api/stats#index', as: 'stats' 

を追加する必要がありますconfig/routes.rbファイル内

class API::StatsController < ApplicationController 
    def index 
     #your code here 
     render json: your_result 
    end  
    end 

を追加することができますindexメソッドを作成することができますURLのパラメータは、params[:location]、でインデックスメソッドでそれを行うことができます

+0

私はこのエラーが発生していると私はそれを回避する方法がわかりません。 'API :: StatsController、/home/ubuntu/workspace/app/controllers/api/stats_controller.rb定数を自動ロードできません。 –

+0

コントローラ名は' Api :: StatsController'にする必要があります –

+0

ありがとう多く!それはうまくいきましたが、APIをすべて大文字にする必要があります。 –

0

は、ここで私はこれを思うだろう方法は次のとおりです。

アプリ/コントローラ/ API/stats_controller.rbでのconfig/routes.rbを

# the path option changes the path from `/api` to `/` so in this case instead of /api/stats you get /stats 
namespace :api, path: '/', defaults: { format: :json } do 
    resources :stats, only: [:index] # or other actions that should be allowed here 
end 

module Api 
    class StatsController 
    def index 
     # your code implementation 
     # you can also fetch/filter your query strings here params[:location] or params[:state] 
     render json: result # dependent on if you have a view 
    end 
    end 
end 

、私を知ってみましょうこれがうまくいくなら

関連する問題