DAPP智慧合約迴圈矩陣公排dapp系統開發

nice1022發表於2023-03-13

設計統一的引數格式,區塊鏈系統開發I34-合約I633-定製53I9


type queryParmas {

  int start

  int size

  string filter

  string sort

}


我們希望介面引數能夠保持一致,並且不隨著介面查詢欄位的變更而增加或改編,因此我們需要友好且靈活的語法作為一個表示式,並且透過規範性的語法生成限制條件。


為此,我們將前端查詢的的資料規範為四個引數start(起始頁)、size(分頁大小)、filter(查詢條件)、sort(排序條件)並規定了格式,其中:


filter 用於過濾篩選返回引數內容,基本語法由欄位<篩選關係>條件組成:


•查詢狀態1和3 state(1@3)


•模糊查詢欄位nickname#hyperchain#


•等於欄位attributeordinary


sort用於對查詢結果排序,由欄位 順序組成:


•時間順序, create_time desc, id asc


■解析引數

當接收到前端請求後,我們透過統一的語法解析器工具,對所有的請求我們會將它處理成一個統一的預定義模型,它將解析所有查詢的引數,構建成一個統一的中間查詢模型,後端會對請求引數校驗解析並過濾完成分頁,過濾排序條件的提取如下:


假設一次http請求攜帶的引數如下


start=1&size=10&filter=namehyperchain,type(1@2)&sort=createTime desc


1)解析器先對 start 和 size 校驗 ,若為空則設定為預設值;


2)將 sort=createTime desc 解析為排序列和排序關係;


3)對 filter 語法進行解析,對字串分隔成 namehyperchain 和 type(1@2),再進行正則匹配是否符合格式,符合後透過正則捕獲組提取欄位、篩選關係和條件;



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70011332/viewspace-2939418/,如需轉載,請註明出處,否則將追究法律責任。

相關文章