pedroquezado / api-loader
用于加载和交互API的库
1.0.2
2023-06-30 14:20 UTC
Requires
- php: >=8.0
- ext-openssl: ^1.0.2
- guzzlehttp/guzzle: ^7.0
README
关于API-Loader
API客户端库
用于与各种API交互的库。
描述
这个库提供了一个方便的接口来与各种API进行通信。它提供了执行HTTP请求、在API上进行身份验证以及执行各种操作的方法,例如获取数据、创建、更新和删除资源。
安装
要开始使用这个库,请按照以下步骤操作
- 将此存储库克隆到您的本地环境中。
- 执行命令
composer require pedroquezado/api-loader
以安装依赖项。
配置
在您能够使用此库之前,您需要配置API访问密钥。
配置访问密钥
APIClient类提供了两种配置访问密钥的方法
setApiKey(apiKey, [titleKey])
配置API访问密钥。
apiKey
(string): API访问密钥。titleKey
(string, 可选): 发送密钥时使用的标题(默认: "Access-Token")。
示例
$apiClient->setApiKey('SEU_ACCESS_TOKEN', 'nomear_ApiKey');
setSecretApiKey(secretApiKey, [titleKey])
配置秘密API访问密钥。
secretApiKey
(string): 秘密API访问密钥。titleKey
(string, 可选): 发送秘密密钥时使用的标题(默认: "Secret-Access-Token")。
示例
$apiClient->setSecretApiKey('SUA_SECRET_ACCESS_TOKEN', 'nomear_SecretApiKey');
操作方法
APIClient类提供了以下方法与API交互
get(path, [params])
对指定路径执行GET请求。
path
(string): API请求的路径。params
(array, 可选): 要包含在请求中的查询参数(默认: [])。
示例
$response = $apiClient->get('/produtos', ['categoria' => 'eletrônicos']);
getWithPagination(path, [params])
对指定路径执行GET请求,支持分页。
path
(string): API请求的路径。params
(array, 可选): 要包含在请求中的查询参数(默认: [])。示例
$response = $apiClient->getWithPagination('/pedidos', ['status' => 'Em Aberto']);
post(path, data)
对指定路径执行带有提供数据的POST请求。
path
(string): API请求的路径。data
(array): 要在请求中发送的数据。示例
$response = $apiClient->post('/produtos', ['nome' => 'Produto A', 'preco' => 100]);
put(path, data)
对指定路径执行带有提供数据的PUT请求。
path
(string): API请求的路径。data
(array): 要在请求中发送的数据。示例
$response = $apiClient->put('/produtos/1', ['preco' => 120]);
delete(path)
对指定路径执行DELETE请求。
path
(string): API请求的路径。示例
$response = $apiClient->delete('/produtos/1');
使用示例
以下是一个展示如何使用此库的代码示例
<?php require_once __DIR__ . '/vendor/autoload.php'; use API\Loader\APIClient; use API\Exceptions\APIException; // Configuração da API $apiEndpoint = 'https://{api_address}/{version}'; $apiKey = 'SUA_API_KEY'; $apiSecretKey = 'SUA_SECRET_API_KEY'; // Criação do cliente da API $apiClient = new APIClient($apiEndpoint); $apiClient->setApiKey($apiKey, 'nomear_ApiKey'); $apiClient->setSecretApiKey($apiSecretKey, 'nomear_SecretApiKey'); try { // Leitura de dados $response = $apiClient->get('/produtos', ['categoria' => 'eletrônicos']); var_dump($response); // Inserção de dados $data = [ 'nome' => 'Produto A', 'preco' => 100, ]; $response = $apiClient->post('/produtos', $data); var_dump($response); // Edição de dados $productId = 1; $data = [ 'preco' => 120, ]; $response = $apiClient->put('/produtos/' . $productId, $data); var_dump($response); // Remoção de dados $productId = 1; $response = $apiClient->delete('/produtos/' . $productId); var_dump($response); } catch (APIException $e) { echo 'Erro na requisição: ' . $e->getMessage(); }
请记住,将 {api_address} 替换为实际的API地址,将 {version} 替换为您使用的API特定版本。另外,将 SUA_API_KEY 和 SUA_SECRET_API_KEY 替换为您有效的访问密钥。
贡献
欢迎贡献!如果您想为 PedroQuezado Api-Loader 贡献,请随意打开一个issue或提交一个pull request。我们感谢您的反馈和贡献,以使本项目更加完善。
许可协议 本项目采用MIT许可证。