terminal42/webling-api

webling.ch 的 API 客户端

1.0.0 2019-10-29 11:03 UTC

This package is auto-updated.

Last update: 2024-08-29 07:38:21 UTC


README

webling.ch REST API 的 API 客户端。

此客户端目前用于我们的项目,可能不支持所有情况。请随时打开问题或拉取请求以提问或提出功能请求。

安装

$ composer.phar require terminal42/webling-api ^2.0@dev

如果您正在使用 Symfony,我们建议使用我们的 Webling Bundle

使用

$subdomain  = 'meinverein';
$apiKey     = 'foobar';
$apiVersion = '1';

$client = new Client($subdomain, $apiKey, $apiVersion);

// Example call for member list:
$client->get('member');

EntityManager

如果您想通过直接调用 API 而不是直接调用 API 来更方便地使用 API,您可以与 EntityManager 一起工作。

webling API 的主要问题是请求资源列表(例如 /member)将只返回对象 ID 数组,而不是成员的姓氏或名字等额外数据。

EntityList 将负责此操作,并在需要时延迟加载额外详细信息。这样,您可以轻松地对成员列表进行迭代。

$em = EntityManager::createForAccount($subdomain, $apiKey);

$entityList = $em->findAll('member');

foreach ($entityList as $member) {

    echo $member->getId();
    echo $member->getProperty('Name');
    var_dump($member->getProperties());
    // etc.
}

QueryBuilder

QueryBuilder 组件允许使用复杂搜索查询查找实体。强烈建议使用具有代码自动完成的 IDE 以便于使用。

示例 1:按名称查找成员

$qb = new QueryBuilder();
$query = $qb->where('Firstname')->isEqualTo('Max')->andWhere('Lastname')->isEqualTo('Muster')->build();

结果:Firstname = "Max" AND Lastname = "Muster"

示例 2:按复杂条件查找成员

$qb = new QueryBuilder();

$query = $qb
    ->group(
        $qb->where('Firstname')->isEqualTo('Max')->andWhere('Lastname')->isEqualTo('Muster')
    )
    ->orGroup(
        $qb->where('Firstname')->isEqualTo('Muster')->andWhere('Lastname')->isEqualTo('Max')
    )
    ->build()
;

结果:'(Firstname = "Max" AND Lastname = "Muster") OR (Lastname = "Max" AND "Firstname" = "Muster")'