目前,我的Laravel应用程序主要运行自定义API,使用Guzzle直接在控制器中使用 . 通过Eloquent处理的站点的唯一部分是用户管理/身份验证 . (控制器扩展了一个父控制器,它在各个函数中具有通用的GET / PUT / POST调用,子控制器调用这些函数并向它们发送数据)
我正在寻找有关如何抽象API的GET / PUT / PUSH调用的信息,并将它们从控制器中取出,以便数据访问在整个电路板上更加统一 . 不幸的是,我没有看到关于API的大量信息,而没有在Laravel应用程序中实际创建它们 .
似乎我应该能够编写一些内容,以便控制器以与它们与用户数据交互的方式类似的方式与API进行交互,但同样,我没有找到有关它的信息(我可能无法正确搜索) .
有人能指出我正确的方向吗?我正在使用Laravel 4.1 .
2 回答
听起来你正在使用Guzzle来连接到第三方API,并且你想要在控制器中实例化Guzzle并调用Guzzle方法 .
一种解决方案是编写一个处理API调用的库类 . 例如
然后,在您的控制器中,只要您需要该数据:
请注意,我假设您为库设置了服务提供程序和外观,因此您可以进行类似
MyAPILibrary::readImportantData($myParameters)
的方法调用 . 有关该教程的详细教程,请参阅this page .这个设置的好处是你现在可以测试你的API库,而不需要触摸你的控制器 . 再加上您的控制器变得更轻 - 通常是一两行 . 例如,上面的示例可以重写:
瞧!一线控制器方法!
看看我的包裹
https://github.com/joshhornby/Http
应该帮助:)