內容目錄
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) 批次刪除資源
![[OmekaS]OmekaS的內部API(PHP API)呼叫方式](/api/proxy-image?url=https%3A%2F%2Fpost.billxu.net%2Fwp-content%2Fuploads%2F2022%2F05%2FOmekaBadge.png)