【问题标题】:Rails providing search through API with themoviedb-api gemRails 使用 themoviedb-api gem 通过 API 提供搜索
【发布时间】:2017-09-22 10:53:07
【问题描述】:

我正在创建专注于电影/连续剧的 Web 应用程序。在此应用程序中,用户将能够搜索电影/连续剧并订阅它们。我想通过 API 为用户提供电影/连续剧搜索引擎。在我的应用程序的数据库中,我没有关于电影/系列的信息,因此当用户在搜索字段中输入标题时,我需要向 API 发送搜索请求以获取与给定模式匹配的电影/系列。问题是,在这一点上,我看不到任何实现此功能的方法。我想到了另一个控制器 e.i.搜索者。这很好,但我想将此搜索字段放在我的应用程序布局中,这样它不仅适用于特定 URL 上的用户,而且在任何地方都可用。

【问题讨论】:

    标签: ruby-on-rails api search


    【解决方案1】:

    首先你有一个来自 IMDB API 的 API 密钥吗? (https://github.com/18Months/themoviedb-api)

    使其成为远程表单并通过 Ajax 回调 ajax:complete 捕获结果。 发出请求时,在视图上显示加载器以等待您调用 api 的时间。

    通过它的路由调用你的 SearchController。

    在您的控制器中搜索您的数据库,如果找不到,请进行 API 调用,保存在数据库中并提供结果。

    (最好在后台调用 API,并通过 Websockets 提供结果,但现在会过度设计。)

    【讨论】:

    • 所以我需要制作一个表单,当它提交时,搜索数据会发送到我的搜索控制器,然后搜索负责收集数据,无论是来自我的数据库还是通过 movieAPI。为了使搜索表单成为我主要布局的一部分,我需要将搜索操作的所有结果保存到我的数据库中,对吗?
    • 更多的是避免达到 API 的配额限制。使表单成为布局的一部分不需要任何东西,只需将其粘贴到布局中。它无处不在...
    • 是的,我明白了。我不需要保存搜索结果,也无法达到配额限制。我认为合理的方法是在我的页面上实现配额限制机制(而不是在 API 端)。回到您的答案,您在后台调用 API 是什么意思?作为浏览器扩展的一部分?
    • 不,我的意思是使用诸如 sidekiq:github.com/mperham/sidekiq 这样的东西,这样你就可以通过漂亮的 Ajax 甚至 Websockets 来做任何事情。但这真的是在它已经起作用之后。尝试先以非优化的方式实现搜索。优化一次它的工作。 (如果可以,请检查答案)
    猜你喜欢
    • 1970-01-01
    • 2014-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-21
    • 1970-01-01
    相关资源
    最近更新 更多