Physical Address

304 North Cardinal St.
Dorchester Center, MA 02124

[OmekaS]OmekaS的內部API(PHP API)呼叫方式

內容目錄

OmekaS的內部API呼叫方式

在OmekaS中大多會使用API來取用資料,主要能分為兩種,PHP的內部API和REST的外部API,詳細介紹可以看以下連結:OmekaS_API參考,今天要來介紹PHP的API呼叫方式以及種類。

OmekaS中有幾個api管理器,引用方式只要使用即可,以下舉例。

use Omeka\Api\Representation\SiteRepresentation;
use Omeka\Api\Representation\SitePageRepresentation;
use Omeka\Api\Representation\SitePageBlockRepresentation;

API用法則是在對應的php物件中取用。

$view //為PhpRenderer的物件
$view->api()->search($resourceType, $query);

這是一個搜尋API,$resourceType是欲取用的物件類型,像是item、item set之類,$query則是查詢條件,下面為我使用的範例。

$resourceType = $block->dataValue('resource_type', 'items'); //從$block取用所有item類型的物件
parse_str($block->dataValue('query'), $query); //轉換文字
$site = $block->page()->site(); //限制從某個site取用
$query['site_id'] = $site->id();
$response = $view->api()->search($resourceType, $query);
$resources = $response->getContent();  //重要,要使用取用的的item物件內容一定要加這句

$resources就是一個可以完整使用的物件資源了,如果取用的是item,那相關後設資料例如tittle等等都在裡面囉。

官方給了數種API取用方法,更多資訊可以參考PHP API說明文件

  • search($resource, $data, $options) 使用條件來搜尋資源
  • read($resource, $id, $data, $options) 使用ID編號來取用資源
  • create($resource, $data, $fileData, $options) 創建建立
  • batchCreate($resource, $data, $fileData, $options) 批次建立資源
  • update($resource, $id, $data, $fileData, $options) 更新資源
  • batchUpdate($resource, $ids, $data, $fileData, $options) 批次更新資源
  • delete($resource, $id, $data, $options) 刪除資源
  • batchDelete($resource, $ids, $data, $options) 批次刪除資源