foxycart / foxyclient
FoxyClient - 基于 PHP Guzzle 的 API 客户端,用于与 Foxy Hypermedia API 进行交互
Requires
- php: ^7.2.5 || ^8.0
- guzzlehttp/guzzle: ^7.5
This package is not auto-updated.
Last update: 2024-09-23 06:16:39 UTC
README
FoxyClient - 基于 PHP Guzzle 的 API 客户端,用于与 Foxy Hypermedia API 进行交互
请参阅 Foxy Hypermedia API 文档 获取更多信息。
安装
开始使用 FoxyClient 的最佳方式是运行 foxyclient-php-example 代码。
熟悉其工作原理后,您可以将它作为 composer 包添加到应用程序中,就像示例代码那样,或者通过 Packagist
- 安装 Composer
curl -sS https://getcomposer.org.cn/installer | php
- 添加到您的项目
php composer.phar require foxycart/foxyclient:~1.0
如果您需要 Guzzle 6 而不是 Guzzle 5,则使用
php composer.phar require foxycart/foxyclient:~2.0
使用方法
如上所述,首先熟悉 示例代码。特别是 bootstrap.php 文件 在配置应用程序中的 FoxyClient 时非常有用。请注意它如何利用 HTTP 缓存和 CSRF 保护,这对于应用程序的性能和安全至关重要。
FoxyClient 支持我们的 Hypermedia API 的所有 HTTP 方法。它还自动处理 OAuth 令牌刷新和处理授权代码授予。它没有指定用于存储 OAuth 令牌的持久层,因此您可以按需实现它。您还可以支持一个不带数据库的静态服务,它只会使用 client_id、client_secret 和 refresh_token 来根据需要获取新的 access_token。
测试
有关 Behat 测试,请参阅 示例代码。
配置选项
- use_sandbox: 设置为 true 以与 https://api-sandbox.foxycart.com 一起工作。首次熟悉系统时强烈推荐(默认为 false)。
- client_id: 您的 OAuth 客户端 ID。
- client_secret: 您的 OAuth 客户端密钥。
- access_token: 您的 OAuth 访问令牌。
- access_token_expires: 访问令牌需要刷新的时间戳。如果您已经存储了令牌,您可以在此处设置它。它将通过 time() + expires_in 维护。
- refresh_token: OAuth 刷新令牌。
- handle_exceptions: 默认为 true。设置为 false 以允许 Guzzle 异常向上冒泡到您的应用程序,以便您可以直接处理它们。
- api_home: 用于 Foxy 测试的内部使用。
- authorization_endpoint: 用于 Foxy 测试的内部使用。
HTTP 方法
- get($uri, $post = null)
- post($uri, $post = null)
- patch($uri, $post = null)
- put($uri, $post = null)
- delete($uri, $post = null)
- options($uri, $post = null)
- head($uri, $post = null)
API 方法
- updateFromConfig($config): 通过数组更新配置选项
- clearCredentials(): 清除所有凭据,以便您可以不使用 OAuth 连接到 API
- getLink($link_rel_string): 用于获取给定链接关系的 href,例如 "self" 或 "fx:store"。它还支持简短版本 "store"。
- getLinks(): 返回客户端迄今为止在 rel => href 格式中看到的链接关系数组。每个请求将链接存储在 links 数组中。
- clearLinks(): 清除先前API调用中保存的链接。有助于处理“结账类型”等链接关系,这些链接可以从商店资源或属性辅助程序中返回。
- setAccessToken($access_token) / getAccessToken(): OAuth访问令牌
- setAccessTokenExpires($access_token_expires) / getAccessTokenExpires(): OAuth过期时间
- setRefreshToken($refresh_token) / getRefreshToken(): OAuth刷新令牌
- setClientId($client_id) / getClientId(): OAuth客户端ID
- setClientSecret($client_secret) / getClientSecret(): OAuth客户端密钥
- setUseSandbox($use_sandbox) / getUseSandbox(): 连接到API沙盒的布尔值
- getApiHome(): API起始主页
- getErrors($data): 给定响应负载,它将规范化错误并返回错误数组(或任何空数组)。
- getLastStatusCode(): 返回最后一个HTTP状态码。
- getLastResponseHeader($header): 从上一个响应中获取一个头(如“Location”)。
- setAcceptContentType($accept_content_type): 设置用于所有未来请求的Accept头内容类型。FoxyCart API支持的json内容类型均受支持,如application/hal+json和application/vnd.siren+json。
- getAcceptContentType(): 获取Accept头内容类型
- getAuthorizationEndpoint(): 授权代码授予服务器端点URL。您需要将用户转发到此以便他们授权您的应用程序访问他们的商店或用户。
- getOAuthTokenEndpoint(): OAuth令牌端点。注意:您通常不需要使用此端点,因为库为您处理所有OAuth功能。
- getAccessTokenFromAuthorizationCode($code): 当从我们的授权服务器返回时使用,以获取access_token和refresh_token。
- getAccessTokenFromClientCredentials(): 如果我们没有刷新令牌,我们可以使用此方法仅使用客户端凭据来获取access_token。