【问题标题】:Best way to implement an external API in Laravel 5?在 Laravel 5 中实现外部 API 的最佳方法是什么?
【发布时间】:2015-10-21 20:32:01
【问题描述】:

我目前正在开展一个项目,该项目需要我通过 HTTP 调用外部 API 以获取一些 JSON 形式的数据。此数据将保存到使用 Eloquent ORM 定义的数据库模式中。此 API 需要身份验证(通过令牌),然后接受使用 GET 的调用,不需要 POST。将参数添加到 URL(例如 ?origin=LHR&destination=GHA)。

我正在尝试找到一种 Laravel 方法来轻松访问此类数据 - 仅仅编写一个具有所有参数的函数的基本类似乎并不正确。我宁愿有某种查询生成器,但对于 URL。我查看了存储库,但这似乎是针对数据库调用的。

总结一下:有没有什么好的“Laravel 方式”来调用外部 API?

【问题讨论】:

  • 我更多的是指从控制器中提取数据层 - 我想在某处定义 API 结构并在那里进行所有处理(如 Eloquent 中的模型),控制器只是“获取" 数据。
  • 恕我直言,编写一个反映远程 API 的简单类对于阅读您的代码的人来说更清楚。您可以在类中隔离 API 的所有细节(令牌身份验证、构建 URL、发出请求等),然后在将其集成到您的应用程序之前对其进行测试。

标签: php json laravel laravel-5 eloquent


【解决方案1】:

我在几天前已经定义了这样的事情;

我的解决方案是定义数组 GET 参数。 F A。

get-some-stuff?where[foo]=bar&with[relation]&with[otherRelation]

然后您可以通过Input::get() 获取参数并使用 foreach 进行处理。

F.a.

foreach(Input::get() as $method => $value) { ...

在foreach中你可以根据$method来决定做什么

【讨论】:

  • 将此标记为答案,我最终制作了一个额外的类,它提供了所有必要的功能,并为每个函数提供了一个 $options 数组参数。
猜你喜欢
  • 1970-01-01
  • 2010-09-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-24
  • 1970-01-01
  • 2018-11-30
  • 1970-01-01
相关资源
最近更新 更多