findbrok / php-watson-api-bridge
IBM Watson API 的简单 PHP 封装
Requires
- php: >=5.5.0
- guzzlehttp/guzzle: 6.2.*
- illuminate/support: ~5.0
- nesbot/carbon: ~1.20
Requires (Dev)
- orchestra/testbench: ~3.0.0|~3.0
- phpunit/phpunit: ~5.5|~4.0
README
PHP IBM Watson API Bridge
介绍
PHP IBM Watson API Bridge,提供了一个简单易用的 IBM Watson API 封装。该库使得我们开发使用 IBM Watson API 的 PHP 应用程序变得更加容易。
许可证
PHP IBM Watson API Bridge 是开源软件,受 MIT 许可证的许可。
安装
$ composer require findbrok/php-watson-api-bridge
用法
在使用此包之前,请检查 Watson API Explorer,以了解您可以和不能使用 Watson 做什么。
require 'vendor/autoload.php' use FindBrok\WatsonBridge\Bridge; // Create a new bridge Object. $bridge = new Bridge('username', 'password', 'baseUrl'); // Simple get request. $queryParams = ['foo' => 'bar']; $response = $bridge->get('uri', $queryParams); // Simple post request. $dataToPost = ['foo' => 'bar']; $response = $bridge->post('uri', $dataToPost, 'json');
此包使用 Guzzle 执行请求,所有响应都将实例化为 GuzzleHttp\Psr7\Response
。
Laravel 5 集成
从版本 1.1.x 开始,PHP Watson API bridge 增加了一个新的 Service Provider,它可以轻松地与 Laravel 5 集成。
如果您正在使用 Laravel >= 5.5,则可以利用 Laravel 自动包发现功能,跳过服务注册和别名注册。
首先将 ServiceProvider 添加到您的 app.php
文件中
'providers' => [ .... FindBrok\WatsonBridge\WatsonBridgeServiceProvider::class, ]
您还可以将以下别名添加到您的 app.php
文件中
'aliases' => [ ... 'Bridge' => FindBrok\WatsonBridge\Facades\Bridge::class, 'BridgeStack' => FindBrok\WatsonBridge\Facades\BridgeStack::class, 'Carpenter' => FindBrok\WatsonBridge\Facades\Carpenter::class, ]
现在发布配置文件
$ php artisan vendor:publish --tag=watson-api-bridge
您现在将在配置目录中有一个配置文件 watson-bridge.php
。您可以在该配置文件中定义您的凭据、要使用的身份验证方法、Watson 服务等。
服务
Laravel 集成为您提供了 3 个服务类,它们绑定到 IoC。
- FindBrok\WatsonBridge\Bridge(实际用于向 Watson 发送请求的 Bridge 类)
- FindBrok\WatsonBridge\Support\Carpenter(可以构造使用您的凭据和服务的 Bridge 实例)
- FindBrok\WatsonBridge\Support\BridgeStack(基本上是一个存储库,您可以在此存储库中保留所有构造的 Bridges 并检索它们)
Bridge
Bridge
类将帮助您使用 get
、post
、put
、patch
方法向 Watson API 发送请求。
$response = $bridge->get('uri', $queryParams);
Carpenter
Carpenter
类可以为您构建任何类型的 Bridge。使用 constructBridge
方法,传递所需的参数,如凭据名称、要使用的服务和身份验证方法等,然后 Carpenter
将构建。
$carpenter = app()->make(Carpenter::class); $bridge = $carpenter->constructBridge('default', 'personality_insights');
请记住,您的凭据名称、服务和身份验证方法都在 watson-bridge.php
配置文件中定义。
BridgeStack
BridgeStack
是一个存放所有桥梁的理想地方,以便您可以在应用中随时检索它们。使用 mountBridge
方法在堆栈中构建并保留任何类型的桥梁。
$stack = app()->make(BridgeStack::class); $stack->mountBridge('myPIBridge', 'default', 'personality_insights'); $stack->mountBridge('myTABridge', 'default', 'tradeoff_analytics'); // Now use the Bridges stored in the Stack. $response = $stack->conjure('myPIBridge')->post('/v3/profile', $dataToPost);
BridgeStack
实质上是一个 Laravel Collection,因此您可以使用所有 Collection 方法。
门面
如果您正在使用小于 5.4 版本的 Laravel,您可以访问 3 个门面用于 3 个服务:Bridge、Carpenter 和 BridgeStack。从 Laravel 5.4 开始,添加了自动门面功能,因此您不需要这些类。
- FindBrok\WatsonBridge\Facades\Bridge
- FindBrok\WatsonBridge\Facades\BridgeStack
- FindBrok\WatsonBridge\Facades\Carpenter
请记住,如果您直接从 IoC 中解析桥梁而不是使用 Carpenter 类构建它,将为您使用默认凭证和 auth 方法从 watson-bridge 配置中解析一个默认桥梁。
致谢
向所有努力创造伟大事物的开发者表示衷心的感谢!
创作者
Twitter: @PercyMamedy
GitHub: percymamedy