使用 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)需要啟用核心模組(如 rest、serialization)。bash drush en rest serialization -y
- 權限配置:為 API 使用者設置適當權限(如「訪問 RESTful 資源」)。
3. 使用 REST API
REST API 是最常用的外部交互方式。
步驟:
- 啟用資源:編輯 services.yml或使用rest.resource.[resource_id].yml文件啟用特定資源(如節點)。
- 發送請求:
- 使用工具如 Postman 或 cURL。
- 範例:獲取節點數據
     bash curl --request GET \ --url 'http://example.com/node/1?_format=json' \ --header 'Accept: application/json'
- 認證:使用 OAuth、JWT 或基本認證(如 admin:password)保護 API。
- 格式:支援 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)。
- 實現 Hook:
  php
  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 版本。