在我的 PHP 应用程序中,我从用户那里输入他喜欢的电影,然后查询主题 API 以检索每部电影的详细信息。
有没有办法批量调用,这样我就不必发出多个 http 请求?例如,如果用户输入 10 部电影名称,是否可以发出一个 http 请求来检索所有 10 部电影的信息,或者我应该进行 10 次 API 调用——每部电影调用一次?后一种方法严重限制了我的应用程序的速度。
在我的 PHP 应用程序中,我从用户那里输入他喜欢的电影,然后查询主题 API 以检索每部电影的详细信息。
有没有办法批量调用,这样我就不必发出多个 http 请求?例如,如果用户输入 10 部电影名称,是否可以发出一个 http 请求来检索所有 10 部电影的信息,或者我应该进行 10 次 API 调用——每部电影调用一次?后一种方法严重限制了我的应用程序的速度。
我看到了几种不同的可能性:
您可以并行触发多个主题 API 请求。没有规则说它们必须按顺序完成。这将大大减少延迟。
您可以在 Freebase 前面使用缓存来在本地存储最近获取的结果。这可能是一个独立于其他任何东西的好主意,并且会大大减少缓存结果的往返时间。
您可以使用 Google API 提供的 HTTP Batch 工具一次发出多个请求。我不是 100% 确定它适用于 Topic API,但我知道它适用于 MQLread,所以也许您转换为使用它。
Search API 可以以与 Topic API 大致相同的形式返回结果,并且它可以采用多个 ID,因此您可以按照以下方式进行操作:https ://www.googleapis.com/freebase/v1/search?indent= true&filter=%28any+mid:/m/0dtfn%20mid:/m/0ddjy%29&output=(all:/film)&indent=true
主题 API 让您将主题的 id 放在路径中,这将每次调用限制为一个主题。一些语言 API 让您传递一个 id 列表,但它们只接受一个包含一个主题的列表。