avetik-dev/book-test

laravel的测试项目

资助包维护!
Patreon

安装: 1

依赖: 0

建议者: 0

安全: 0

星标: 0

关注者: 1

分支: 0

开放问题: 0

类型:扩展

1.1.2 2022-06-01 13:21 UTC

This package is auto-updated.

Last update: 2024-09-29 06:25:55 UTC


README

Latest Stable Version Build Status Total Downloads License Code Climate Code Coverage Scrutinizer CQ

Resova API PHP7客户端

本项目是一个基于Guzzle Http客户端的简单且极简的Resova API客户端。

composer require evilfreelancer/resova-api-php

Laravel框架支持

Resova API客户端针对作为普通Laravel包的使用进行了优化,所有功能都通过\ResovaApi外观提供,要访问客户端对象,您需要使用

$config = new \Resova\Config(['api_key' => 'my-secret-key']);
$resova = new \Resova\Client($config);

使用

$resova = \ResovaApi::getClient();

您还可以通过将参数数组传递给getClient方法来向客户端提供额外的参数

$resova = \ResovaApi::getClient([
    'api_key' => 'my-secret-key',
    'timeout' => 1000,
]);

Laravel安装

通过Composer安装此包

composer require evilfreelancer/resova-api-php

默认情况下,包将自动注册其服务提供者,但如果您使用的是低于5.3版本的Laravel,那么在项目中的config/app.phpproviders块中添加(在完成composer require之后),您可以使用您的包

'providers' => [
    // ...
    Resova\Laravel\ClientServiceProvider::class,
],

可选地,如果您想更改任何默认值,可以发布配置文件

php artisan vendor:publish --provider="Resova\\Laravel\\ClientServiceProvider"

术语

在Resova中有四个关键对象,每个API开发者都应该了解。

如何使用

请参阅这里的使用示例这里,按类名分隔。

基本示例

<?php
require_once __DIR__ . '/vendor/autoload.php';

use Resova\Config;
use Resova\Client;

$config = new Config(['api_key' => getenv('API_KEY')]);
$resova = new Client($config);

// Get all slots for all items in dates range
$calendar = $resova->availability->calendar(date('Y-m-d'), date('Y-m-d'))->exec();

foreach ($calendar as $instances) {
    // Get availability of slots for some item
    $instance = $resova->availability->instance(3)->exec();
}

我在哪里可以找到我的API密钥?

如果您还没有,您可以在这里注册一个新账户。登录您的账户后,请转到设置 > 通用设置 > 开发者,您的API密钥将位于此处。

*Items*端点

项目在Resova系统中意味着您的房间。

https://developers.resova.com/reference#items

// Single
$result = $resova->item(1)->exec();
print_r($result);

// Single: Reviews list
$result = $resova->item(1)->reviews()->exec();
print_r($result);

// Single: Booking questions list
$result = $resova->item(1)->booking_questions()->exec();
print_r($result);

// Single: Extras list
$result = $resova->item(1)->extras()->exec();
print_r($result);

// All
$result = $resova->items->exec();
print_r($result);
*Availability*端点

实例的详细信息、实例价格和日期日历等。

实例 - 在Resova API的逻辑中意味着有时间段和价格的时段。

https://developers.resova.com/reference#availability

use \Resova\Models\Pricing;

$result = $resova->availability->instance(123)->exec();
print_r($result);

$pricing = new Pricing([
    'quantities' => [
        ['pricing_category_id' => 1, 'quantity' => 2],
        ['pricing_category_id' => 1, 'quantity' => 3],
        ['pricing_category_id' => 1, 'quantity' => 4],
    ]
]);
$result = $resova->availability->instance(123)->pricing($pricing)->exec();
print_r($result);

$result = $resova->availability->calendar(date('Y-m-d'), date('Y-m-d'))->exec();
print_r($result);
*Baskets*端点

在Resova中,Baskets意味着购物车,它包含客户创建的预订购物车的详细信息。

https://developers.resova.com/reference#the-basket-object

use \Resova\Models\BasketRequest;

// Basket request object
$basket = new BasketRequest([
    'customer_id' => 123,
    'expires_at'  => '1558101934',
]);

// Create
$result = $resova->baskets->create($basket)->exec();
print_r($result);

// List
$result = $resova->baskets->exec();
print_r($result);

// Single
$result = $resova->basket(123)->exec();
print_r($result);

// Update
$result = $resova->basket(123)->update($basket)->exec();
print_r($result);

// Delete
$result = $resova->basket(123)->delete()->exec();
print_r($result);
*Customers*端点

用于处理客户信息,如电子邮件、电话、地址等。

https://developers.resova.com/reference#customers

use \Resova\Models\Customer;
use \Resova\Models\CustomerCreate;

// Customer create request object
$customerCreate = new CustomerCreate([
    'first_name' => 'John',
    'last_name'  => 'Doe',
    'email'      => 'email@example.com'
]);

// Create
$result = $resova->customers->create($customerCreate)->exec();
print_r($result);

// Single
$result = $resova->customer(123)->exec();
print_r($result);

// Customer update request object
$customerUpdate = new Customer([
    'first_name' => 'John',
    'last_name'  => 'Doe',
    'email'      => 'email@example.com'
]);

// Update
$result = $resova->customer(123)->update($customerUpdate)->exec();
print_r($result);
*Gift Voucher*端点

在Resova中,礼品券意味着促销码,您可以管理您的促销活动。

https://developers.resova.com/reference#gift-vouchers

// Single
$result = $resova->gift_voucher(123)->exec();
print_r($result);

// All
$result = $resova->gift_vouchers->exec();
print_r($result);
*Webhooks*端点
// All
$result = $resova->webhooks->all()->exec();
print_r($result);

您还应该知道的一些事情

  1. Resova的技术支持非常不愿意回答您的任何请求,即使您有银行卡并且赚钱,有很小概率您的请求将停止处理,并且您的电子邮件将被列入黑名单

  2. 在试用账户中,您无法使用API,因此您在添加银行卡之前无法检查功能。

  3. 您应该在Resova开发者设置中将您的服务器IP添加到白名单中

  4. 但尽管如此,您的服务器IP可能会在没有解释的情况下自动被阻止(可能是通过fail2ban),并且在几个未回答的问题之后,支持团队会将您的电子邮件/脸书账户添加到黑名单中

  5. 在您的IP被禁止之前,最优的HTTP请求量不超过每天1000次,或每小时大约40次请求,这可能是由于最近对他们的服务器的DDoS攻击,所以请非常小心,否则您将不得不配置中间代理服务器,这并不方便(并且这些代理服务器在一段时间后也可能被禁止)

  6. Resova不提供测试账户或测试环境,以在发布到生产环境之前测试您的应用程序的功能,因此在处理Resova API时请务必小心,并仔细检查所有数据

链接