[發明專利]一種JSON API動態SQL生成方法和系統在審
| 申請號: | 202110509767.7 | 申請日: | 2021-05-11 |
| 公開(公告)號: | CN113312034A | 公開(公告)日: | 2021-08-27 |
| 發明(設計)人: | 汪明;陸永輝;王廣軍;張勇 | 申請(專利權)人: | 孔智科技(徐州)有限公司 |
| 主分類號: | G06F8/30 | 分類號: | G06F8/30;G06F16/242;G06F16/25 |
| 代理公司: | 南京經緯專利商標代理有限公司 32200 | 代理人: | 黃雪蘭 |
| 地址: | 221118 江蘇省徐州市*** | 國省代碼: | 江蘇;32 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 json api 動態 sql 生成 方法 系統 | ||
本發明公開了一種JSON API動態SQL生成方法和系統,包括以下步驟:(1)前端JSON數據格式約定,后臺JSONAPI會根據JSON數據格式約定對JSON數據進行解析,(2)前端JS庫封裝一個生成JSON數據的方法,在前端觸發數據持久化操作時,如新增、更新、查詢和刪除時,會自動按照JSON約定生成數據。并通過AJAX POST方式發送到后臺,(3)后臺統一的API入口,首先對JSON數據進行解析,并驗證token是否合法,并關聯查詢出當前用戶ID、部門ID和角色ID等,(4)鑒權如果不通過,則返回并給出提示信息。鑒權通過后,則解析api方法全路徑,如果為空,則說明沒有個性化邏輯處理,只是對數據進行常規操作。
技術領域
本發明涉及軟件開發技術領域,特別是涉及一種JSON API動態SQL生成方法和系統。
背景技術
隨著互聯網技術的發展,JSON已經逐步取代XML作為一種高效的數據交換格式。當前很多Web應用程序前端會獲取到HTML表單的數據,并封裝成JSON格式,通過AJAX方式與后臺API進行交互,并完成一系列數據邏輯處理,并持久化到數據庫中。
目前一個軟件系統中通常都會涉及多個業務模塊,不同的業務模塊一般來說,數據會存儲到不同的數據庫表中,除了一些個性化的業務邏輯預處理外,在數據的增、刪、改和查這幾個SQL操作來說,模式是一致的,但就是表名和字段名不同,數據不同而已,但是傳統的軟件開發模式來說,存在如下缺點:
(1)數據的增、刪、改和查,代碼部分存在大量的重復勞動,不同的模塊都要編寫一個新的后臺API進行處理,開發效率低。
(2)如果某個模塊需求變化,增加、減少或者變更一些業務字段,需要修改對應的后臺API中的SQL部分。
(3)涉及兼容多個不同類型的數據庫時,如兼容MySQL和PostGreSQL,如果不借助ORM工具,則需要分別維護多種數據庫類型的SQL分支代碼。
發明內容
為了克服現有技術的不足,本發明提供一種JSON API動態SQL生成方法和系統,以實現任意模塊的前端業務數據,后臺統一用一個通用的JSON API進行處理,大幅減少后臺SQL代碼編寫量,提高軟件開發效率,降低軟件開發成本,同時,由于后臺JSON API可以根據JSON數據和配置項(如當前數據庫類型、字段權限和字段檢驗條件等),動態生成SQL,并可在執行SQL前,進行字段權限檢驗和數據合法性檢驗。
為解決上述技術問題,本發明提供如下技術方案:一種JSON API動態SQL生成方法和系統,具體包括以下步驟:
(1)前端JSON數據格式約定,后臺JSONAPI會根據JSON數據格式約定對JSON數據進行解析,JSON數據格式約定如下:
(2)前端JS庫封裝一個生成JSON數據的方法,在前端觸發數據持久化操作時,如新增、更新、查詢和刪除時,會自動按照JSON約定生成數據。并通過AJAX POST方式發送到后臺;
(3)后臺統一的API入口,首先對JSON數據進行解析,并驗證token是否合法,并關聯查詢出當前用戶ID、部門ID和角色ID等;
(4)鑒權如果不通過,則返回并給出提示信息。鑒權通過后,則解析api方法全路徑,如果為空,則說明沒有個性化邏輯處理,只是對數據進行常規操作;
(5)利用解析出的表名、字段類型,字段名和字段值,以及數據操作,結合當前數據庫類型,生成對應的SQL語句。
作為本發明的一種優選技術方案,所述(1)中的JSON數據包括模塊ID(moduleId)、數據操作(action),枚舉值為新增(C)、更新(U)、查(R)和刪除(D),門票(token)后臺邏輯處理的方法名(api),可以為空,則代表用通用JSONAPI進行處理。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于孔智科技(徐州)有限公司,未經孔智科技(徐州)有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202110509767.7/2.html,轉載請聲明來源鉆瓜專利網。





