首頁 > CMS教程 > &#&按 > 將自定義路線添加到WordPress REST API

將自定義路線添加到WordPress REST API

Lisa Kudrow
發布: 2025-02-09 10:44:09
原創
926 人瀏覽過

Adding Custom Routes to the WordPress REST API

WordPress REST API自定義路由:擴展API功能的強大工具

本文探討WordPress REST API的自定義路由功能,展示如何創建定制化的API解決方案。 與僅使用默認路由相比,自定義路由提供了更精細的控制和擴展性。

核心要點:

  • WordPress REST API具有高度可定制性,允許開發者添加自定義路由和端點,滿足特定需求。
  • 使用register_rest_route()函數,結合rest_api_init動作,即可添加自定義路由。 需指定命名空間、路由路徑以及包含方法、回調函數和權限信息的端點數組。
  • 端點可定義具體的HTTP方法(GET、POST、PUT、DELETE),並指定其接受的數據字段、默認值、清理和驗證規則。
  • 端點中的權限回調函數確保只有授權請求才能訪問路由,通過檢查用戶權限或自定義授權方法來增強安全性。
  • 自定義路由和端點提供了一種更結構化、更安全的方式來擴展WordPress REST API,精確控制數據輸入和輸出,成為開發者增強WordPress項目的強大工具。

超越默認路由:構建無限可能

關於WordPress REST API的大部分討論都集中在查詢默認路由上,這使得它看起來像一個單一的API,例如Twitter API。 然而,WordPress REST API並非單一API,而是數百萬個高度可定制的API的集合,本身也可以作為構建API的工具。 默認路由是眾多站點需求的折中方案,並非所有任務都能僅靠默認路由完成。

就像WordPress不僅僅是全局WP_Query對像一樣,REST API也不僅僅是默認API。 只使用默認路由就像在傳統的WordPress項目中從不創建自己的WP_Query對象,或覆蓋pre_get_posts中的默認查詢一樣。雖然可行,但並非所有工作都能僅靠默認的WordPress URL路由來完成。

REST API同樣如此。 REST API的聯合首席開發者Ryan McCue曾提到,該項目的第二版分為兩部分:默認路由和創建RESTful API的基礎架構。默認路由為創建自定義路由提供了很好的示例。

添加路由:register_rest_route()函數

REST API第二版引入了一個名為register_rest_route()的新函數,允許向REST API添加路由並傳入端點數組。 對於每個端點,不僅要提供處理請求的回調函數,還可以定義查詢中所需字段,包括默認值、清理和驗證回調函數以及單獨的權限回調函數。

本文將重點介紹回調函數、字段參數和權限檢查這三個方面,它們展示了API的架構,並通過一個示例演示如何創建一個自定義路由,其中包含兩個端點,用於顯示由Easy Digital Downloads (EDD)驅動的電子商務網站中的產品信息。

設置路由:命名空間和路由路徑

定義自定義路由時,需在rest_api_init動作中使用register_rest_route()函數。 該函數接受四個參數:

  1. 命名空間: 所有路由都必須命名空間化,作為“wp-json”之後下一個URL段。 默認路由的命名空間為wp。 命名空間避免了路由衝突。

  2. 路由路徑: 命名空間後的URL。 例如,“/products”或“/products/(?P[d] )”(允許在最後一個URL段中使用數字,例如帖子ID)。

  3. 端點數組: 定義路由的端點,包含方法、回調函數、參數等信息。

  4. override參數(可選): 布爾值,用於處理與已定義路由的衝突。 默認為false,嘗試合併路由;設置為true則替換已聲明的路由。

設置端點:方法和字段

端點需要定義一個或多個HTTP傳輸方法(GET/POST/PUT/DELETE)。 可以使用WP_REST_Server類中的常量來定義方法,例如WP_REST_Server::READABLE(只允許GET請求)或WP_REST_Server::ALLMETHODS(允許所有方法)。

在定義字段時,可以指定字段的默認值、清理回調函數等。 這使得回調函數能夠信任它接收到的數據。

回調函數和權限回調函數

每個端點的回調函數(在callback鍵中指定)是請求將被分派到的方法(如果權限回調函數通過)。 權限回調函數(在permission_callback鍵中指定)檢查當前用戶是否有權訪問端點。

處理和響應請求

回調函數接收WP_REST_Request對象,可以使用get_params()方法獲取已清理和驗證的參數。 可以使用rest_ensure_response()函數創建WP_REST_Response對象,確保響應是正確的JSON格式,並包含必要的標頭。

總結:自定義API,無限可能

WordPress REST API的默認路由非常有用,但自定義路由提供了更強大的控制和擴展能力。 當默認路由無法滿足需求時,創建自定義路由是一個有效的解決方案。

以上是將自定義路線添加到WordPress REST API的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板