fidél / hotel-api
一个PHP类,用于连接并从Amadeus客户端请求酒店服务
Requires
- php: >=5.3.0
- guzzlehttp/guzzle: 6.1.1
- illuminate/database: ^5.2
- illuminate/http: ^5.2
- illuminate/routing: ^5.2
- league/fractal: >=0.12.0
This package is not auto-updated.
Last update: 2022-02-01 12:57:44 UTC
README
一个PHP模块,用于连接并从Amadeus客户端请求酒店服务
##安装
要安装此包,您需要
- Laravel 5.2
- PHP 5.5.9+
将仓库直接添加到您的composer.json
文件中
"repositories": [
{
"type": "vcs",
"url": "https://github.com/foresttravel/hotel-api"
}
]
通过在终端运行composer命令进行安装。
composer require foresttravel/hotel-api --prefer-source
完成后,您需要在app.php
配置文件中的providers
数组中添加服务提供者,如下所示
HotelAPI\Providers\HotelApiServiceProvider::class
然后在终端中运行
php artisan vendor:publish --provider="HotelAPI\Providers\HotelApiServiceProvider"
###连接 要成功连接,您需要在.env
文件中指定以下环境变量
API_ENDPOINT_AMADEUS='*******'
API_USERNAME_AMADEUS='*******'
API_PASSWORD_AMADEUS='*******'
###认证 要使用中间件,您必须将它们注册在app/Http/Kernel.php
文件下的$routeMiddleware
属性中
protected $routeMiddleware = [
...
'token-amadeus' => \HotelAPI\Middleware\AuthenticateTokenAmadeus::class
];
然后在app/Http/route.php
文件中可以这样使用
$api->group(['middleware' => 'token-amadeus'], function ($api) {
$api->post('hotel-details', 'API\V1\HotelController@hotelDetails');
...
});
当用户第一次请求时,他将登录到Amadeus客户端并接收一个令牌,然后下一步就是使用这个令牌进行后续请求。
要通过http进行认证请求,您需要设置一个授权头,如下所示
Authorization: Bearer {yourtokenhere}
Apache用户注意
Apache似乎会丢弃不是base64编码的用户/密码组合的授权头。因此,要修复此问题,您可以在Apache配置中添加以下内容
RewriteEngine On
RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule .* - [e=HTTP_AUTHORIZATION:%1]
###数据库 此包需要一些编码表才能正常工作。您需要指定数据库迁移所使用的数据库驱动程序。您可以在.env
文件中使用此环境变量指定驱动程序
API_CONNECTION_DRIVER='*****'
然后您可以进行迁移
php artisan migrate
###更新 要保持此包的更新,您可以使用此命令
composer update foresttravel/hotel-api