使用 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 版本。