terminal42 / webling-api
webling.ch 的 API 客户端
1.0.0
2019-10-29 11:03 UTC
Requires
- php: ^7.1
- php-http/client-implementation: ^1.0
- php-http/discovery: ^1.0
- php-http/httplug: ^1.0
- php-http/message-factory: ^1.0
- psr/http-message: ^1.0
- symfony/console: ^2.6 || ^3.0 || ^4.0
- symfony/filesystem: ^2.6 || ^3.0 || ^4.0
Requires (Dev)
- php-http/guzzle6-adapter: ^1.1
- phpunit/phpunit: ~4.0
- satooshi/php-coveralls: ~0.6
Suggests
- php-http/guzzle6-adapter: Guzzle or any other httpPlug compatible implementation.
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")'