trombone-techniques
使用 Metronoms 和 Tuning 裝置來提升 Trombone 的實習
Table of Contents
現代開發者為何要使用無頭的 CMS ?
內容- 驅動的應用程式需要一個後端介面, 其结合了灵活性、 性能和對數據架构的完全控制。 Directus 已經成為一個站立的無頭的 CMS , 因為它將一個強大的、实时的 SQL 數據庫包成一個清潔的、 延伸的 API 層, 而不強迫您進入一個預定的 schema 的平台。 Directus 和任何 SQL 數據庫合作, 并讓您完全擁有對數據的擁有權限。 這個灵活性, 加上直覺的 admin 儀式和強大的 SDK , 使得 Directus 理想的專案從簡單的部落格到多渠道的數位數位經驗。 這個平台是開放的, 完全可以自我接受, 并为那些不喜歡處理基礎的團隊提供管理好的雲選項目 。
迪杜斯的數據 – 第一個哲學
大多數傳統的 CMS 平台將基礎資料庫隱藏在抽象層的后面, 將內容當做是後期的思考。 Directus 翻轉了這個模型: 它將您的關聯資料庫當做唯一的真理源。 您用標準的 SQL 表格、 欄位和關係來設計您的計劃, Directus 則從此程式中自動產生 RESTful 或 GraphQL API。 此資料的% 1 方法表示您從來就不需要像您應用程式所要求的對抗 CMS 。 也表示您的資料仍然可以移植, 可以匯出、 移出它, 或者連接其他任何會說 SQL 的工具 。
直接與 SQL 合作
Directus 运行在 MySQL 、 PostgreSQL 、 SQLite 或其他 SQL 資料庫之上。 您可以充分利用原生 SQL 索引、 加入、 檢視、 啟動和儲存的程序的全部功能, 而不使用任何可以降低性能或引入意想不到的行為的中間翻譯層。 當您在 Directus 中執行原始查詢時, 您直接對您的資料庫說話。 這對已經有明确定義的資料模型或從遺傳的系統中移動的隊伍來說, 尤其有價值 。 因為 Directus 不強硬化 ORM , 您避免了查詢管理以及類與其他無頭 CMS 平台相關的問題 。
無團體的關係
Directus 的關係是通过實際的外國金鑰處理的。 建立 one to many 或 man many 連結和定義相關欄一樣直截了當; Directus 自动發現了關係。 系統也支持套接字的關係查詢, 使您能在一個單個要求中取得相關的內容。 這個關係權限表示您可以模擬複雜的结构, 類似產品目錄, 包括類型、 變型、 以及相關媒體, 而不使用 clunky 字段的類型。 Directus 也支持很多 {{} 關係, 通過一個交接表, 讓您有灵活性可以將任何兩個單位單位單位的實體連結 。
API 產生: 自動、 快速、 標準
一旦您的數據庫 schema 建立, Directus 便會產生 RESTful API (包含完整的 CRUD 操作) 與相補 GraphQL API 。 兩者都遵守業務標準, 很容易從任何客戶端- web、 mobile 或伺服器- side 中消耗。 自动生成的 API 尊重您的數據庫限制和權限, 提供字段驗證、 數據類型的實施, 以及關聯完整度。 不需要附加的設定檔, 只要您連接了數據庫, API 即將啟用 。
最後的點,你可以信任
您數據庫中的每個表格都成為 REST 端點。 您可以用查詢參數來過、 排序、 粘合和總結結果。 Directus 也支持深度的關聯過關, 也就是您可以在一個單位呼叫中要求作者名稱為 " Jane" 且類別 sattle 的資料。 對於更喜歡預測的、 缓存的介面的開發者, REST API 會提供一個成熟的解議。 API 也支持批次操作、 嵌入建立、 和字段化化的查詢參數, 減少自訂中間列的用 。
複雜查詢的圖式QL
如果您需要用最小的要求取得多個資源, GraphQL 端點會讓你精确地定义回應的形狀。 Directus 自动產生一個 GraphQL 的圖形方案, 以映射您的數據庫結構, 包括所有關係。 前端小組可以精确地查詢他們需要的字段, 消除過度的和不足的 。 GraphQL 游戲場嵌入 Directus admin 面板會使實驗快速安全。 要了解 GraphQL 的更多信息, 請參考 [[FLT: 0] 官方 GraphQL 文件[[FLT: 1] 。 Directus 也支持持續的查詢, 以便您預備 QLetcolical GraphQL 操作, 以更快執行和更好的缓存控制 。
管理板: 供編輯器與開發者使用
Directus 提供了一個完全自訂的清潔的白版 label 管理界面。 編輯器會看到一個支持丰富文字的視覺資料 QQenter 系統、 影像上傳、 檔案管理、 以及自訂的布局。 開發者可以隱藏先进的數據庫字段、 重新命名列以顯示目的, 並加入驗證規則, 都不用觸碰前端的應用程式代碼。 儀表板是建成的, 和 API 分开, 可以完全控制編輯經驗。 介面也支持暗模式、 鍵盤捷徑、 以及應用程式和手機的應用設計 。
角色- 基于存取控制
安全權限系統會通過一個 pranaular 權限系統處理。 您可以在表格、 字段甚至項目等關卡中定義角色及指定權限。 例如, 編輯器可能會建立並更新文章, 但不會刪除, 而贡献者只會看到自己的草稿。 所有權限都在 API 層面上執行, 確保任何客戶端都無法跳過預期的存取規則。 这使得 Directus 適合於內容敏感度值得關注的應用程式, 如內部文件入口或客戶端點的出版系統。 您也可以設定檔案下載權限以及公開存取特定端點的權限, 讓您能精細地控制誰看到什麼 。
自訂佈局和介面延伸
在預設的表格和窗体檢視之外, Directus 支援自訂的排版, 如 Kanban 板、 行事曆和地圖。 這些排版是建為延伸, 並且可以從市場安裝, 或是在 QQ 內發展。 例如, 專案管理應用 Kanban 排版來顯示按狀態排列的工作, 而事件網站可能使用行事曆視窗來視覺排程。 自訂介面可以取代預設的輸入字段( 如下載或文字區域) , 例如取色器或 Googleool 地圖 選擇器 。
廣泛性和直立生态系统
沒有 CMS 能預測每個使用大小寫, 所以 Directus 的建立都是有延展性的。 您可以新增自訂的端點、 點點、 點火數據庫事件、 以及自訂的標籤板。 系統也支持檔案儲存适配器, 允許您在本地磁碟、 Amazon S3、 Google Cloud 儲存器或其他任何支持標準檔案系統介面的提供商 。 關於支援的儲存适配器, 請參考 [[FLT: 0]] Directus 檔案儲存文件 [[FLT: 1] 。 此外, 您可以使用 外出( 通知第三方系統) 和 接收( 從外部來源接收資料) 的網頁整合 Directus 和外部服務 。
自动化的钩
Directus hooks 讓你在任何 CRUD 動作之前或之後執行自訂的邏輯。 例如, 您可以從標題中產生彈頭, 在新文章出版時傳送通知到 Slack 頻道, 或是同步內容到外部搜尋索引, 如 [[FLT: 0]] 。 虎克用 JavaScript 寫成, 可以像需要的簡單或複雜, 使您有權將工作流程自动化而不離開 Directus 環境。 它們也可以被用來驗證資料、 變更輸入, 或是像發送電子郵件一樣觸發出副作用。 因為 hooks run server% 1 , 它們可以安全存取環境變數和外部 API 。
自訂端點和中端件
如果您的應用程式需要超越標準的 CRUD 操作的 API 端點, 您可以使用 Directus 的扩展 API 建立自訂端點。 這些端點用 JavaScript 寫成, 可以存取資料庫、 要求的上下文和權限系統。 這可以讓您直接透過 Directus API 顯示自訂的商業邏輯, 如生成報告、 處理付款或進行複雜的集合, 而不用建立单独的微服務。 Midware 延伸讓您修改全球的請求/ 應行為, 使您可以使用 IP 白列、 限制率或自訂認認認認制等功能 。
性能和可伸缩性
因為 Directus 基本上是一個很薄的包裝器, 它的性能描述鏡照應您基本的 SQL 設定。 Caching 可以用像 Varnish 或 Nginx 的反向代碼在 API 等位處執行。 GraphQL 端點支持持續的搜尋以取得最佳的儲存。 对于高的交通應用程式, 您可以在負载平衡器后面執行多個例來水平的縮放 Directus API , 而資料庫層的大小是獨立的。 結果是內容後端可以處理數百萬項項目和數以千計的同步要求, 而沒有專業的基礎。 Directus 还包括為 admin 儀表和 API 的回應而建的 caching 。
數據庫的等級优化
Directus 暴露了本地的 SQL, 您可以獨立优化數據庫- 添加索引, 分割大表格, 或是使用實現的檢視來做複雜的集合 。 API 層沒有引入重大的管理權; 每一個要求會被轉譯成一個或多個 SQL 查詢, 不需要附加抽象 。 对于 read- havy 工作量, 您可以執行讀取複製, 配置 Directus , 使用不同的連結來讀寫。 对于寫取的 QQHy 設定, 您可以調整連結, 使用同步的勾結, 而不阻擋回應 。
選擇直線對其它無頭的 CMS 選項
Directus在需要完整資料所有性和灵活性的假設中非常優秀。 如果您的專案需要一個複雜的關係模型, 嚴格遵守遺傳的樣本, 或是在防火牆后面的 primise 部署, Directus 是一個很強的候選人。 對於想要避免供应商鎖定的團隊, 也是一個很大的選擇。 因為您的資料生活在标准的 SQL 資料庫中, 您可以在任何時間不痛苦的移動下切換Directus 。 相對而言, Community 等平台可以提供建立與預定的内容模型的便利, 但他們限制您使用本地資料庫特性的能力, 并且常常每一個API 呼叫充電。 Directus, 作為開放資源, 給您無限的可自由使用。 另一种流行的選擇是 Strapi; 而 Strapi 也提供自我托管, 它的資料儲存在 SQL 資料庫中, 但结构更有觀點。 Directiveus 的純 SQL 方法讓您有最大的灵活性。 。 參考對 [FLT: 0]
實際例子:用Directus建立音樂教育部落格
要看到 Directus 的操作, 請考慮一個像 trombone 技術部落格的網站, 需要管理文章、 作者設定檔、 影像嵌入檔和可下載的工作表音樂。 有了 Directus , 您會先定义 SQL 表格 : [[ [FLT: 1] , [[FLT: 2]], [[FLT: 2]]] , [[FLT: 3]] 。 建立表格後, Directus 立即產生 API 和 admin 介面。 編輯器可以使用富含文字編輯器寫文章, 附加 PDF 文件, 并且將每篇文章連結到一個或多個作者。 前端( 用 React、 Vue 或 Svelte 建設 ) , 通過 REST 或 GraphQL 取取資料, 并讓 部落格成正。 随着部落格的增長, 您可以加入自訂的勾結 [[FLT: 4] , 生成 SEOO , , , 自动調整
以自訂的終點延伸音樂部落格
假設您要提供一個基于標籤的「 建议文章」 功能。 您可以使用自訂的端點來查詢與目前文章共享標籤的文章的資料庫, 傳回一個編譯的清單。 這個邏輯會被封裝在一個單個端點上, 保持前端簡單。 相类似, 您可能會建立一個端點, 接受一個搜尋名詞, 並在多個表格中傳回完整文字搜尋結果, 對於一個純 API 的用戶來說, 這將是複雜的 。
從 Directus 開始
您可以從兩種方式開始: 自主辦或透過 Directus Cloud 。 自主辦是直截了當的: 克隆寄存器、 建立數據庫、 執行 Docker 影像。 官方文件會提供一個詳細的通路。 對於偏愛管理解决方案的團隊, Directus Cloud 處理基礎、 縮放和備份。 在兩種情况下, 核心功能都完全相同, 您都保留了對資料的全權存取權。 參觀 [[FLT: 0] 的 Directus 檔案 [[FLT: 1] 。 開始 。
一旦安裝, 第一步就是連接您的數據庫, 探索自動產生的 API。 您不需要先在 UI 中寫入任何設定檔或定義內容類型, 只要在 SQL 資料庫中直接指點 Directus , 並且立即會通過 API 讀取和寫入。 這個 零 配置方法將 Directus 和其他無頭的 CMS 產品相隔開來, 使它成為一個價值效率和控制力的開發者中最喜歡的。 您可以從簡單的表格開始, 逐漸地加入關聯, 隨著專案的進化而延伸 钩子和自訂的端點 。
結 论
Directus 提供了少有的灵活度、性能和開發者方便的組合。 它把您的 SQL 資料庫當做基礎, 消除了讓其他 CMS 解議慢化的抽象。 它的自動產生了 API, 颗粒權限, 以及可延伸的勾結系統, 給您提供工具, 從小銷售網站到企業的 QL 級內容平台建立任何東西。 對於任何珍視全數據所有性、 關係建模能力, 以及自訂堆積層的能力的人, Directus 都是個很強的選擇, 它在無頭的 CMS 地平面上突出。
如果您愿意超越硬性的 CMS 限制, 想要一個適應您的資料模型的系統, 而不是其他的 Directus 是值得认真看的。 從 [[FLT: 0] 官方文件[[FLT: 1] 開始, 以及一個試驗資料庫來第一手體驗您能如何快速從 schema 走向一個實際的, Production * ready API。 開放源碼群體正在活跃, 插件的環境正在擴大, 平台的路徑包括繼續改善性能和發展者經驗 。