trisoftro/collective-access-client

Collective Access HTTP 客户端

dev-master 2023-11-01 10:38 UTC

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_USERCA_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