findbrok/php-watson-api-bridge

该包已被弃用且不再维护。未建议替代包。

IBM Watson API 的简单 PHP 封装

v1.1.2 2017-06-06 18:42 UTC

This package is auto-updated.

Last update: 2023-06-05 01:44:29 UTC


README

php-watson-api-bridge.png

PHP IBM Watson API Bridge

Latest Stable Version Latest Unstable Version Build Status StyleCI License Total Downloads 68747470733a2f2f696e73696768742e73656e73696f6c6162732e636f6d2f70726f6a656374732f34653231303933612d636336302d346137352d623766652d6362323930353366616636632f6d696e692e706e67

介绍

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 类将帮助您使用 getpostputpatch 方法向 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 配置中解析一个默认桥梁。

致谢

向所有努力创造伟大事物的开发者表示衷心的感谢!

创作者

Percy Mamedy

Twitter: @PercyMamedy
GitHub: percymamedy