maxwkf / barsbank
支持 Barsbank API 的包
v1.01
2022-07-19 10:46 UTC
Requires
- guzzlehttp/guzzle: 7.4.5
Requires (Dev)
- orchestra/testbench: ^7.0
README
此 barsbank API 允许您操作 https://dynamic.barsbank.com/api-docs 中的 API。(预订功能尚未实现)
安装
Composer
您应该已安装 composer,并使用以下命令进行安装。
composer require maxwkf/barsbank
在 Laravel 中运行
复制并添加密钥到配置文件,并将您的 API 密钥添加到其中。
运行以下命令。它将配置文件复制到您的 /config 文件夹
> php artisan vendor:publish --provider="Maxwkf\Barsbank\BarsbankServiceProvider" --tag="config"
更新配置文件中的密钥属性。
return [ 'key' => 'your-own-key' ];
使用方法
无框架的 PHP
$apiKey = "your-api-key"; $parkId = 2; // your park id $apiClient = new \Maxwkf\Barsbank\ApiClient(apiKey: $apiKey, parkId: $parkId); $apiClient ->setDateFrom('2022-12-01') ->setDateTo('2022-12-31') ->setNumberAdults(2) ->getAvailability() ;
Laravel
- 将 API 密钥添加到您的配置文件
- 创建自己的 Lodge Class 接口,以便您可以稍后连接其他 API 客户端。
// /app/Services/Lodge.php namespace App\Services; interface Lodge { public function getAvailabilities(); public function getValidStays(); public function getParkAccommodation(); public function getTourValidStays(); public function getExtras(); }
- 在 AppServiceProvider.php 中注册 Lodge 类,并使用我们的 API 客户端实例化它
app()->bind(Lodge::class, function () { $apiClient = (new \Maxwkf\Barsbank\ApiClient( apiKey: config('barsbank.key'), parkId: 2, )); return new BarsbankLodge($apiClient); });
- 创建自己的类以实现 Lodge Class,并将 ApiClient 注入到该类中
namespace App\Services; use Maxwkf\Barsbank\ApiClient; class BarsbankLodge implements Lodge { public function __construct(protected ApiClient $client) { } public function getAvailabilities() { $this->client ->setNumberAdults(1) ->setDateFrom('2022-09-26') ->setDateTo('2022-09-30') ; return $this->client->getAvailabilities(); } public function getValidStays() { // your own implementation } // implement for other functions }
- 创建自己的控制器,并直接从 web.php 使用 LodgeController
// /routes/web.php Route::get('/testBarsbankApi', LodgeController::class);
// /app/Http/Controllers/LodgeController.php namespace App\Http\Controllers; use App\Services\Lodge; use Illuminate\Http\Request; class LodgeController extends Controller { public function __invoke(Lodge $lodge) {// validate // $result = $lodge->getAvailabilities(); dd($lodge->getAvailabilities()); } }