franjid/api-wrapper-bundle

API Wrapper Bundle。从 Symfony 消费 API

安装: 68

依赖: 0

建议者: 0

安全: 0

星星: 6

关注者: 2

分支: 1

开放问题: 0

类型:symfony-bundle

v1.0.0 2017-01-14 10:47 UTC

This package is not auto-updated.

Last update: 2024-09-28 20:56:02 UTC


README

Build Status Scrutinizer Code Quality Code Coverage

此包的目的是作为您在 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 的方法做好准备。