使用 Drupal API 簡介

2025-05-09

標籤: Drupal API

廣告

Drupal 提供強大的 API,讓開發者可以與其核心功能互動,進行自定義開發。以下是使用 Drupal API 的簡單介紹,涵蓋核心概念與基本步驟。

1. 了解 Drupal API 的種類

Drupal 提供多種 API,常用包括: - RESTful Web Services API:用於與外部應用程式交互,支援 GET、POST、PATCH、DELETE 等 HTTP 方法。 - Entity API:管理 Drupal 的實體(如節點、用戶、分類項)。 - Form API:自定義表單結構與行為。 - Database API:執行資料庫查詢與操作。 - Plugin API:創建模組化功能,如塊或視圖。 - Configuration API:管理站點配置。

2. 設置環境

  • 安裝 Drupal:確保已安裝 Drupal(建議使用最新版本,如 Drupal 11)。
  • 啟用模組:部分 API(如 REST API)需要啟用核心模組(如 restserialization)。 bash drush en rest serialization -y
  • 權限配置:為 API 使用者設置適當權限(如「訪問 RESTful 資源」)。

3. 使用 REST API

REST API 是最常用的外部交互方式。

步驟:

  1. 啟用資源:編輯 services.yml 或使用 rest.resource.[resource_id].yml 文件啟用特定資源(如節點)。
  2. 發送請求
  3. 使用工具如 Postman 或 cURL。
  4. 範例:獲取節點數據 bash curl --request GET \ --url 'http://example.com/node/1?_format=json' \ --header 'Accept: application/json'
  5. 認證:使用 OAuth、JWT 或基本認證(如 admin:password)保護 API。
  6. 格式:支援 JSON 或 HAL+JSON(透過 _format 參數指定)。

範例回應:

{
  "nid": 1,
  "title": "Hello World",
  "type": "article"
}

4. 使用 Entity API

Entity API 用於操作 Drupal 實體。

基本操作:

  • 載入實體php $node = \Drupal\node\Entity\Node::load(1);
  • 創建實體php $node = \Drupal\node\Entity\Node::create([ 'type' => 'article', 'title' => 'New Article', 'body' => 'Content here', ]); $node->save();
  • 更新實體php $node->set('title', 'Updated Title'); $node->save();
  • 刪除實體php $node->delete();

5. 自定義模組與 Hook

若需擴展功能,可創建自定義模組並使用 Hook 與 API 交互。 - 創建模組:在 modules/custom 目錄創建模組文件(如 mymodule.info.yml)。 - 實現 Hookphp function mymodule_node_presave(\Drupal\node\NodeInterface $node) { // 在節點保存前執行自定義邏輯 $node->set('field_custom', 'value'); }

6. 工具與資源

  • 官方文件:查閱 Drupal API 文檔
  • Drush:使用 Drush 加速開發(如生成模組或清除緩存)。 bash drush cr
  • Postman:測試 REST API 請求。
  • Devel 模組:用於調試與檢查 API 數據。

7. 注意事項

  • 安全性:確保 API 請求使用 HTTPS,並限制匿名用戶的訪問權限。
  • 效能:使用緩存(如 cache.backend)提升 API 響應速度。
  • 版本相容性:檢查模組與 API 是否相容於你的 Drupal 版本。
廣告