trisoftro / collective-access-client
Collective Access HTTP 客户端
Requires
- php: >=5.6.0
This package is not auto-updated.
Last update: 2024-09-18 14:43:30 UTC
README
CollectiveAccess 新 JSON 基于的 REST Web 服务 API 的简单 PHP 包装器
请访问 http://www.collectiveaccess.org 获取更多信息,并参考 http://docs.collectiveaccess.org 了解服务 API 和核心软件的其他功能。
要使用此库,只需将所有项目文件复制到您的项目子目录中,并包含您想要使用的服务的类文件。
例如
require './cawrapper/ItemService.php': $client = new ItemService("https:///","ca_objects","GET",1); $result = $client->request(); print_r($result->getRawData());
这将为您获取具有对象_id 1 的对象记录的通用摘要。
以下是其他服务端点的简单示例,以帮助您入门
$vo_client = new ModelService("https:///","ca_entities"); $vo_client->setRequestBody(array("types" => array("corporate_body"))); $vo_result = $vo_client->request(); $vo_result->isOk() ? print_r($vo_result->getRawData()) : print_r($vo_result->getErrors());
$vo_client = new SearchService("https:///","ca_objects","*"); $vo_client->setRequestBody(array( "bundles" => array( "ca_objects.access" => array("convertCodesToDisplayText" => true), "ca_objects.status" => array("convertCodesToDisplayText" => true), "ca_entities.preferred_labels.displayname" => array("returnAsArray" => true) ) )); $vo_result = $vo_client->request(); $vo_result->isOk() ? print_r($vo_result->getRawData()) : print_r($vo_result->getErrors());
要使用身份验证,您基本上有 3 个选项。第一个是使用 PHP 常量 __CA_SERVICE_API_USER__
和 __CA_SERVICE_API_KEY__
,如下例所示,如果您想在同一脚本中运行多个服务请求,这将很有用。
请注意,所有 3 个身份验证选项都尝试从远程服务检索 authToken,将其保存在临时目录中,并在有效期间重用。当它过期时,它将使用以下 3 个选项之一提供的用户名和密钥进行重新认证。在此期间不使用用户/密钥。
现在回到第一个选项 - 常量
require './ca-service-wrapper/ItemService.php'; define('__CA_SERVICE_API_USER__', 'administrator'); define('__CA_SERVICE_API_KEY__', 'dublincore'); $o_service = new ItemService('https://', 'ca_objects', 'GET', 1); $o_result = $o_service->request();
您还可以使用简单的设置器
require './ca-service-wrapper/ItemService.php'; $o_service = new ItemService('https://', 'ca_objects', 'GET', 1); $o_service->setCredentials('administrator', 'dublincore'); $o_result = $o_service->request();
第三个选项(可能是最适合生产的)是将凭据作为环境变量 CA_SERVICE_API_USER
和 CA_SERVICE_API_KEY
传递。想象一下这个简单的脚本作为 authtest.php
require './ca-service-wrapper/ItemService.php'; $o_service = new ItemService('https://', 'ca_objects', 'GET', 1); $o_result = $o_service->request();
然后在终端中运行类似以下内容应该可以工作
export CA_SERVICE_API_USER=administrator export CA_SERVICE_API_KEY=dublincore php authtest.php
在 Web 服务器设置中做这件事,您可以考虑 apache 的 mod_env。