Ruby API - 接受参数并执行脚本

时间:2016-04-12 21:56:06

标签: ruby-on-rails ruby api rails-api

我创建了一个rails项目,其中包含一些我想作为API执行的代码。我正在使用rails-api gem。

该文件位于app / controllers / api / stats.rb中。

我希望能够通过访问此类链接 - http://sampleapi.com/stats/?location=USA?state=Florida来执行该脚本并返回json输出。

我应该如何配置项目,以便在访问该链接时运行我的代码?

2 个答案:

答案 0 :(得分:1)

应该调用该文件stats_controller.rb app/controllers/api/stats_controller.rb

您可以创建一个index方法,您可以在其中添加代码

  class API::StatsController < ApplicationController  
    def index
       #your code here
       render json: your_result
    end    
  end
文件config/routes.rb中的

您应该添加

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

要访问网址中的参数,您可以使用params[:location]params[:state]

在索引方法中执行此操作

答案 1 :(得分:0)

以下是我对此的看法:

app / controllers / api / stats_controller.rb

中的

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

在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

让我知道这是否有效