實戰教程|數據校驗 - 步入高階開發的必修課

作者:張澤栓
首發於知曉雲 - 小程序開發快人一步
在這裏插入圖片描述
數據校驗是爲保證數據的完整性、合法性進行的一種驗證操作。方法很多,都很繁瑣。本着爲你解決後端那些麻煩事兒的初心。知曉雲隆重推出開年以來第一個重大更新——「校驗器」。

  • 知曉雲內置的 ACL 權限控制和數據表字段屬性規則可輕鬆應對簡單的權限控制、字段校驗;
  • 校驗器在此基礎上支持編寫自定義校驗邏輯以處理邏輯複雜、安全性要求高的業務場景;
  • 校驗器的處理完全在雲服務器上進行,安全、可靠;
  • 校驗器和雲函數組合使用,讓數據校驗邏輯與業務邏輯解耦,代碼管理更輕鬆。

本文將以電商後臺訂單的校驗處理爲例,帶你快速解鎖新知識。
在這裏插入圖片描述

校驗器簡述

校驗器用於數據創建、更新、刪除等操作時校驗操作的合法性,可以非常方便地處理權限複雜、安全性要求高的場景。數據表關聯了校驗器後,在進行正常的數據操作時,存儲引擎會自動調用該校驗器進行校驗。校驗器通過返回 true、false 或拋出錯誤來對操作合法性做出評判。只有當校驗器返回 true 時,操作才能繼續正常進行下去,有效攔截非法操作。

使用校驗器的好處

在權限控制、字段校驗上,知曉雲通過 ACL 權限設定和字段屬性規則,可以非常方便地對一般場景進行處理。如,帖子數據表,所有用戶都可以創建帖子,但帖子只有帖子創建者才能修改,其他用戶只能查看,這個通過 ACL 的規則設定即可完成;創建修改帖子時,帖子標題需要大於 10 個字,也能通過字段屬性規則設定字符串長度限制完成。但如果是更加複雜一點的場景,如只有綁定了手機號的用戶才能創建帖子,ACL 權限和字段屬性規則就不好辦了,這個時候,就要使用雲函數,在雲函數內編寫代碼來完成數據創建與更新的工作。

雖然問題得到了解決,但客戶端、小程序端則要從使用 sdk 提供的數據操作接口,變成調用雲函數調用接口,在 io 層的封裝上更加複雜。

隨着校驗器的上線,這個問題可以得更加優雅的解決:客戶端正常調用數據操作方法進行增刪改,校驗器自動被數據引擎調用執行。更進一步的,調用 open api、運營後臺 api 時,校驗器都會被執行,避免多端邏輯因爲入口不一致的規則不統一問題。

此外,相對於雲函數,校驗器的語法邏輯更簡單。返回 true 或 false 來進行判定即可。而且我們還內置了校驗模版。開發者只需要在模版的對應位置加入判定邏輯即可。

綜上所述,校驗器有以下幾個優點:

  • 補充自帶的 ACL 權限控制的不足,支持自定義規則,權限控制更加強大、細緻。
  • 數據校驗邏輯與業務邏輯解耦。
  • 創建方便、語法簡單,官方提供模版,上手快。

校驗器實戰

只需兩步,即可成功創建並使用校驗器:

  1. 在「知曉雲」-「控制檯」-「數據表」中創建校驗器 。
    在這裏插入圖片描述
    在這裏插入圖片描述
  2. 校驗器創建成功後,進入編輯頁面,只需要在默認提供的校驗器模版代碼對應的 handler 如 onCreate、onUpdate 等中加入判定邏輯即可。
    在這裏插入圖片描述
    在這裏插入圖片描述
    下面是一個完整的校驗器例子,實現了以下規則:
  • 所有用戶可以創建訂單
  • 只允許用戶 1001 刪除訂單
  • 禁止了批量創建、批量更新、批量刪除
  • 禁止取消已過期訂單
    在這裏插入圖片描述
    以上。
    如果你有其他需求,可以在知曉雲產品路線圖提交需求或添加客服微信(minsupport3)等方式告訴我們,非常感謝大家一如既往的支持~
    在這裏插入圖片描述
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章