mrgla55 / tabapi
TAB Studio API包装器
Requires
- php: >=5.6
- guzzlehttp/guzzle: 6.*
This package is auto-updated.
Last update: 2024-09-29 05:27:56 UTC
README
Laravel 5的TAB Studio REST API客户端
Laravel的TAB REST API客户端。
虽然这个包是为Laravel构建的,但它已经被解耦,可以扩展到任何框架或纯PHP应用程序。目前只支持Laravel 4、5和Lumen。
安装
Tabapi可以通过composer安装。打开您的composer.json
文件,并在require
键中添加以下内容
"mrgla55/tabapi": "0.*"
然后在命令行中运行composer update
来安装包。
Laravel安装
将服务提供者和别名添加到您的config/app.php
文件中
mrgla55\Tabapi\Providers\Laravel\TabapiServiceProvider::class 'Tabapi' => mrgla55\Tabapi\Providers\Laravel\Facades\Tabapi::class
对于Laravel 4,在
app/config/app.php
中添加mrgla55\Tabapi\Providers\Laravel4\TabapiServiceProvider
。别名保持不变。
Lumen安装
class_alias('mrgla55\Tabapi\Providers\Laravel\Facades\Tabapi', 'Tabapi'); $app->register(mrgla55\Tabapi\Providers\Lumen\TabapiServiceProvider::class); $app->configure('Tabapi'); $app->withFacades();
然后您将在bootstrap/app.php
文件中注册Lumen服务提供者。
配置
您需要一个配置文件来添加您的凭证。使用artisan
命令发布配置文件
php artisan vendor:publish
您可以在以下位置找到配置文件:config/tabapi.php
对于Lumen,您应将配置文件从
src/config/config.php
复制到应用程序根目录下的config目录中的Tabapi.php
配置文件。
对于Laravel 4,运行
php artisan config:publish mrgla55/Tabapi
。它将在app/config/mrgla55/Tabapi/config.php
中找到。
入门指南
设置TAB Studio账户
- 访问https://studio.tab.com.au/
- 您需要一个有效的TAB账户号码
- 点击“注册”并完成表格。注册通常需要2-3天。
- 登录TAB Studio
- 点击右上角的“设置”
- 注意您的Client Id和Client Secret,并将它们放入.env文件中的TAB_CLIENT_ID和TAB_CLIENT_SECRET,或更新tabapi配置文件。
设置
创建路由
测试API流程
Route::get('/versions', function() { return Tabapi::versions(); });
API请求
所有资源都通过方法重载动态请求。
首先,通过调用确定您可以访问哪些资源
Tabapi::resources();
结果
Array ( [account:authenticate] => https://webapi.tab.com.au/v1/account-service/tab/authenticate [account:balance] => https://webapi.tab.com.au/v1/account-service/tab/accounts/{accountNumber}/balance ... )
接下来,通过引用指定的键调用资源。用下划线 '_' 替换冒号 ':'。在基本URL中嵌入的参数用参数替换。任何剩余的参数都添加到查询字符串中。
例如
Tabapi::lookup_countries_allowed();
或
Tabapi::info_sports(['jurisdiction' => 'nsw']);
自定义Apex端点
对于嵌套链接或直接调用,您可以使用custom()方法来使用它们。
Tabapi::custom('/myEndpoint');
可以像这样传递额外的选项和参数
Tabapi::custom('https://api.beta.tab.com.au/v1/tab-info-service/racing/dates/2018-11-06/meetings/R/Racing%20-%20Futures/races/Melbourne%20Cup%20(All%20In)', [ 'parameters' => ['jurisdiction' => 'VIC', 'fixedOdds' => 'true'] ]);
有关更多信息,请参阅“使用Apex REST创建REST API”。
有关Guzzle响应和事件监听器的更多信息,请参阅他们的文档。