Ruby on rails 想知道这段代码怎么会变成API

Ruby on rails 想知道这段代码怎么会变成API,ruby-on-rails,json,ruby,api,Ruby On Rails,Json,Ruby,Api,几周后,我完成了这个Html解析,它接收一个单词,并在该url中计数ruby counter.rb你好' 我想知道如何将其创建为一个Rails JSON API。我需要请求:url,:word,:count,所以JSON只需要使用url、我请求的单词和在其中发现的重复次数来构建 我完全不知道该怎么做,这似乎很容易,但我就是不明白 希望有人能帮助我, 谢谢。我想你知道如何创建rails应用程序吧?假设您已经这样做了,您只需要定义一条路线并将其映射到控制器 namespace :count do

几周后,我完成了这个Html解析,它接收一个单词,并在该url中计数ruby counter.rb你好'

我想知道如何将其创建为一个Rails JSON API。我需要请求:url,:word,:count,所以JSON只需要使用url、我请求的单词和在其中发现的重复次数来构建

我完全不知道该怎么做,这似乎很容易,但我就是不明白

希望有人能帮助我,
谢谢。

我想你知道如何创建rails应用程序吧?假设您已经这样做了,您只需要定义一条路线并将其映射到控制器

namespace :count do 
  namespace :v1 do 
    match 'count_words', to: 'count#count_words', via: :get
  end
end
然后在controllers/count/v1/count\u controller.rb中定义一个控制器

class Count::V1::CountController < ApplicationController
  def count_words
    # not sure why you're passing URL twice, but hey, whatever
    counter = Counter.new(params[:url]) 
    result = counter.count(params[:url], params[:word]
    render :json => result
  end
end  
然后实例化计数器类并将此信息传递给它。然后,控制器将使用包含计数器结果的JSON消息进行响应。您需要确保您的计数器实际返回一个哈希结构,但对于一个简单的API,基本上只需要这样做

要称这样的事情,你应该:

localhost:3000/count/v1/count_words

传递上述JSON消息

我读了这篇文章,但是我不知道我把这个函数放在哪里了,我需要重建什么来交互JSONI想要这样的东西:curl-d{“url”:“;“word”:“TesTing”},然后它返回一个JSON,其中包含url,我问的单词以及url中有多少个单词是的,我的答案会这样做。关键是路由和API资源的控制器。它所做的一切基本上就是获取{“url”:“example.com”;“word”:“TesTing”}并将其传递给计数器类,将结果作为JSON响应传递回请求者。您需要在URL中指定一个操作。在我的示例中,操作是“count_words”,但这可以在路由文件中配置:app/config/route.rb如果您设置了类似于我概述的内容,那么您的命令将是:localhost:3000/count/v1/count_words-d{“url”:“example.com”,“word”:“TesTing”}噢,谢谢!我来看看这个。感谢您的帮助无问题-如果我已经做到了,请不要忘记将此标记为有用/回答问题=)
{
  "url": "www.count.co.uk", 
  "word": "count"
}
localhost:3000/count/v1/count_words