【问题标题】:Rails App Movies API - HerokuRails 应用电影 API - Heroku
【发布时间】:2013-06-18 21:23:21
【问题描述】:

我有一个 Rails 电影应用程序,它可能会使用来自其他网站的 API 来填充我的数据库。

我正在使用 TMDB.org API(我已经有一个 API 密钥)来提取,现在让我们说 TitleDescription 一部电影。

我将如何从 tmdb 站点提取信息到我的站点并在 <% @movie.title %><% @movie.description %> 中显示信息 需要使用 Heroku 将获取的信息放在我的 PostgreSQL 数据库中 所以这是一个问题

另一个问题是如果不为 TMDB 数据库中的每部电影运行一个方法,我将如何做到这一点

例如,使用Ruby-TMDB Gem,而不是运行

TmdbMovie.find(:title => "The Social Network", :limit => 10, :expand_results => true, :language => "en")

TmdbMovie.find(:title => "The Dark Knight Rises ", :limit => 10, :expand_results => true, :language => "en")

对于我想要在我的数据库中的每一部电影(即 TMDB 数据库中的每一部电影),我会运行到GET ALL Movies。

然后在我的电影中显示它们:显示页面

总而言之,我如何从 TMDB.org 获取数据库信息到我的 rails 应用程序,并将信息从 TMDB 电影 :show 页面显示到我的电影 :show em> 页面,使用Ruby-TMDB Gem IN Heroku?会不会有 rake 任务,如果有,会是什么?

非常感谢!

【问题讨论】:

    标签: ruby-on-rails database api postgresql heroku


    【解决方案1】:

    您有 2 个问题要解决。

    我应该如何以及在我的 Rails 应用中的何处提取数据?

    是的,这可以通过 rake 来完成。添加新的 rake 文件lib/tasks/tmdb.rake

    namespace :db do
      task :pull_tmdb_data => :environment do
    
        Tmdb.api_key = "t478f8de5776c799de5a"
        # setup your default language
        Tmdb.default_language = "en"
    
        # find movies by id
        @movie = TmdbMovie.find(id: 123)
        Movie.create title: @movie.title, description: @movie.description
    
        # find movies in groups
        @movies = TmdbMovie.find(:title => 'Iron Man')
        @movies.each do |movie|
            Movie.create title: movie.title, description: movie.description
        end
    
      end
    end
    

    现在每次你想用 tmdb 填充你的数据库时,你可以简单地运行rake db:pull_tmdb_data

    从 tmdb 中提取所有电影的必要查询是什么?

    浏览他们的 api 并没有复制数据库的捷径,如果您想复制它,最好的办法可能是直接与他们联系。您可以通过尝试所有可能的电影 id 来强制它,但要注意它们确实会扼杀您。以下是他们网站的引述。

    我们确实实施了少量的速率限制。请注意,如果您超出这些限制,您将收到 503 错误。

    • 每个 IP 每 10 秒 30 个请求
    • 同时最多 20 个 连接

    如果您真的需要复制 tmdb,可能值得考虑。当 tmdb 添加新电影并修复其数据中的错误时,您的数据库将过时,因此您将面临一系列难以解决的数据完整性问题。

    【讨论】:

    • 您可以尝试搜索一个空标题并查看返回的内容@movies = TmdbMovie.find(:title => '')
    • 对不起,我对 Rails 非常陌生,所以我有几个问题
    • 命名空间只是命名空间,还是将要使用的应用程序或控制器的名称(电影)?
    • # get form tmdb 那里会有什么?假设我的 API Key 是 123456789,它会是什么样子
    • #在这里你可以访问你的模型这是什么意思,我知道模型是什么,但是我需要在那里输入任何东西
    猜你喜欢
    • 2021-08-18
    • 1970-01-01
    • 2016-05-03
    • 1970-01-01
    • 2013-06-02
    • 1970-01-01
    • 2023-03-16
    • 2017-08-22
    • 1970-01-01
    相关资源
    最近更新 更多