[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"blog-omekasomekas的內部api呼叫方式":3},{"id":4,"slug":5,"title":6,"description":7,"content":8,"date":9,"image":10,"imageAlt":6,"author":11,"categories":14,"path":17,"minRead":18},67,"omekasomekas的內部api呼叫方式","[OmekaS]OmekaS的內部API(PHP API)呼叫方式","OmekaS的內部API呼叫方式 在OmekaS中大多會使用API來取用資料，主要能分為兩種，PHP的內部AP […]","\u003Ch1>OmekaS的內部API呼叫方式\u003C\u002Fh1>\n\u003Cp>在OmekaS中大多會使用API來取用資料，主要能分為兩種，PHP的內部API和REST的外部API，詳細介紹可以看以下連結：\u003Ca href=\"https:\u002F\u002Fomeka.org\u002Fs\u002Fdocs\u002Fdeveloper\u002Fapi\u002Fphp_api\u002F\" title=\"OmekaS_API參考\">OmekaS_API參考\u003C\u002Fa>，今天要來介紹PHP的API呼叫方式以及種類。\u003C\u002Fp>\n\u003Cp>OmekaS中有幾個api管理器，引用方式只要使用即可，以下舉例。\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-php\">use Omeka\\Api\\Representation\\SiteRepresentation;\nuse Omeka\\Api\\Representation\\SitePageRepresentation;\nuse Omeka\\Api\\Representation\\SitePageBlockRepresentation;\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>API用法則是在對應的php物件中取用。\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-php\">$view \u002F\u002F為PhpRenderer的物件\n$view-&gt;api()-&gt;search($resourceType, $query);\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>這是一個搜尋API，$resourceType是欲取用的物件類型，像是item、item set之類，$query則是查詢條件，下面為我使用的範例。\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-php\">$resourceType = $block-&gt;dataValue(&#039;resource_type&#039;, &#039;items&#039;); \u002F\u002F從$block取用所有item類型的物件\nparse_str($block-&gt;dataValue(&#039;query&#039;), $query); \u002F\u002F轉換文字\n$site = $block-&gt;page()-&gt;site(); \u002F\u002F限制從某個site取用\n$query[&#039;site_id&#039;] = $site-&gt;id();\n$response = $view-&gt;api()-&gt;search($resourceType, $query);\n$resources = $response-&gt;getContent();  \u002F\u002F重要，要使用取用的的item物件內容一定要加這句\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>$resources就是一個可以完整使用的物件資源了，如果取用的是item，那相關後設資料例如tittle等等都在裡面囉。\u003C\u002Fp>\n\u003Cp>官方給了數種API取用方法，更多資訊可以參考PHP\u003Ca href=\"https:\u002F\u002Fomeka.org\u002Fs\u002Fdocs\u002Fdeveloper\u002Fapi\u002Fphp_api\u002F\" title=\" API說明文件\"> API說明文件\u003C\u002Fa>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>search($resource, $data, $options) 使用條件來搜尋資源\u003C\u002Fli>\n\u003Cli>read($resource, $id, $data, $options) 使用ID編號來取用資源\u003C\u002Fli>\n\u003Cli>create($resource, $data, $fileData, $options) 創建建立\u003C\u002Fli>\n\u003Cli>batchCreate($resource, $data, $fileData, $options) 批次建立資源\u003C\u002Fli>\n\u003Cli>update($resource, $id, $data, $fileData, $options) 更新資源\u003C\u002Fli>\n\u003Cli>batchUpdate($resource, $ids, $data, $fileData, $options) 批次更新資源\u003C\u002Fli>\n\u003Cli>delete($resource, $id, $data, $options) 刪除資源\u003C\u002Fli>\n\u003Cli>batchDelete($resource, $ids, $data, $options) 批次刪除資源\u003C\u002Fli>\n\u003C\u002Ful>\n","2022-07-04T10:20:49","\u002Fapi\u002Fproxy-image?url=https%3A%2F%2Fpost.billxu.net%2Fwp-content%2Fuploads%2F2022%2F05%2FOmekaBadge.png",{"name":12,"link":13},"Chih Fan","http:\u002F\u002Fpost.billxu.net",[15],{"name":16,"slug":16},"omekas","\u002Fblog\u002Fomekasomekas的內部api呼叫方式",1]