franjid / api-wrapper-bundle
API Wrapper Bundle。从 Symfony 消费 API
v1.0.0
2017-01-14 10:47 UTC
Requires
- php: ^5.5.9|~7.0
- guzzlehttp/guzzle: ~6.2.0
- symfony/config: ~2.3|~3.0
- symfony/framework-bundle: ^2.7|^3.0
Requires (Dev)
- phpunit/phpunit: @stable
This package is not auto-updated.
Last update: 2024-09-28 20:56:02 UTC
README
此包的目的是作为您在 Symfony 中想要使用的任何 API 库的包装器。在这种情况下,使用 Guzzle,最受欢迎的 PHP HTTP 客户端库。
使用此包从未如此容易地消费 API。
您能找到什么?
Api.php
封装魔法就在这里发生。
它只有一个方法 send,它会向 API 发送适当的请求。
ApiClientFactory.php
用于创建所有不同的 API 客户端。当定义时,它需要一个简单的字符串或不同 URL 的数组作为 API 的基本 URI。如果提供了数组,工厂将随机选择其中之一。这有点像是因为某种原因实现的基本负载均衡器。
ApiRequest.php
必须用于向 API 发送请求。使用不同的方法,您可以将请求方法(GET、POST 等)设置为头部,设置端点等。
ApiResponse.php
在 Api 中成功调用 send 方法时返回的对象。您可以获取响应状态码、头部或正文。
如何使用它
首先,使用 composer 安装包
composer require franjid/api-wrapper-bundle
并将包添加到您的 AppKernel.php 中
new \Franjid\ApiWrapperBundle\ApiWrapperBundle(),
示例:添加 Xkcd API 的 API
您可以在 此存储库 中查看使用此包的示例代码的项目
第一步是在您的服务配置文件中定义 API 客户端
ApiClientXkcd:
class: ApiClientXkcd
factory: [@ApiWrapperBundle.Component.Api.ApiClientFactory, createApiClient]
arguments:
- %apiXkcdBaseURI%
这将创建 ApiClientXkcd,使用参数 apiXkcdBaseURI 并将其注入,以便我们有一个基本 URI。
apiXkcdBaseURI 应该是以下格式
apiXkcdBaseURI: 'http://xkcd.com/'
现在,是时候创建接口、然后是服务类,并将其添加到您的服务配置文件中
Service.Api.ApiXkcdServiceInterface:
class: AppBundle\Service\Api\ApiXkcdService
arguments:
- @ApiClientXkcd
此时,您可以为添加调用 API 的方法做好准备。