[發明專利]一種動態生成中間件的方法、裝置、介質和電子設備有效
| 申請號: | 202010085254.3 | 申請日: | 2020-02-10 |
| 公開(公告)號: | CN111338813B | 公開(公告)日: | 2023-05-12 |
| 發明(設計)人: | 鄔亮;趙汝軍 | 申請(專利權)人: | 北京字節跳動網絡技術有限公司 |
| 主分類號: | G06F9/54 | 分類號: | G06F9/54 |
| 代理公司: | 北京國昊天誠知識產權代理有限公司 11315 | 代理人: | 馬瑞 |
| 地址: | 100041 北京市石景山區*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 動態 生成 中間件 方法 裝置 介質 電子設備 | ||
1.一種動態生成中間件的方法,其特征在于,包括:
在node.js框架中,動態加載和獲取采用接口描述語言撰寫的第一文件;
分析所述第一文件,生成對應的第一抽象邏輯語法樹;
遍歷所述第一抽象邏輯語法樹分別獲取每種請求消息對應的接口元信息;其中,所述請求消息是滿足超文本傳輸協議的消息;
基于每個接口元信息分別獲取對應的多框架處理函數集;所述多框架處理函數集包括:多個框架類型對應的業務邏輯處理函數;
基于每個接口元信息和對應的所述多框架處理函數集分別生成中間件;
接收第一請求消息;
分析所述第一請求消息,獲取第一框架類型和第一超文本傳輸協議元信息;
基于所述第一超文本傳輸協議元信息獲取第二中間件;
將所述第一框架類型、所述第一請求消息和所述第一超文本傳輸協議元信息作為入參輸入所述第二中間件;
所述第二中間件將所述第一超文本傳輸協議元信息與所述第二中間件中的第二超文本傳輸協議元信息進行匹配;
當確定匹配成功后,則基于所述第一請求消息中的第一請求數據調用所述第一框架類型對應的第二業務邏輯處理函數,并生成所述第二中間件的第一響應數據。
2.根據權利要求1所述的方法,其特征在于,所述遍歷所述第一抽象邏輯語法樹分別獲取每個請求消息對應的接口元信息,包括:
遍歷所述第一抽象邏輯語法樹分別獲取每種請求消息對應的接口函數信息;
基于每個所述接口函數信息分別從所述第一抽象邏輯語法樹中獲取對應的接口元信息。
3.根據權利要求2所述的方法,其特征在于,所述接口元信息,包括:超文本傳輸協議元信息;
所述基于所述接口函數信息從所述第一抽象邏輯語法樹中獲取對應的接口元信息,包括:
基于所述接口函數信息從所述第一抽象邏輯語法樹中獲取對應的超文本傳輸協議元信息。
4.根據權利要求3所述的方法,其特征在于,所述接口元信息,還包括:位置映射元信息;
所述基于所述接口函數信息從所述第一抽象邏輯語法樹中獲取對應的接口元信息,還包括:
基于所述接口函數信息從所述第一抽象邏輯語法樹中獲取對應的入參類型和回參類型;
分別分析所述入參類型或所述回參類型與所述請求消息的對應關系,獲取對應的位置映射元信息。
5.根據權利要求4所述的方法,其特征在于,所述接口元信息,包括:入參類型檢測元信息和回參類型檢測元信息;
所述基于所述接口函數信息從所述第一抽象邏輯語法樹中獲取對應的接口元信息,還包括:
基于所述入參類型從所述第一抽象邏輯語法樹中遞歸獲取對應的入參依賴類型;
根據所述入參類型和所述入參依賴類型生成對應的入參類型檢測元信息;
基于所述回參類型從所述第一抽象邏輯語法樹中遞歸獲取對應的回參依賴類型;
根據所述回參類型和所述回參依賴類型生成對應的回參類型檢測元信息。
6.根據權利要求5所述的方法,其特征在于,當確定匹配成功之后,還包括:
獲取第二位置映射元信息;
基于所述第二位置映射元信息獲取所述第一請求消息中的第一請求數據。
7.根據權利要求6所述的方法,其特征在于,所述多框架處理函數集,還包括:多個框架類型對應的請求失敗處理函數;
所述當確定匹配成功后,還包括:
獲取第二入參類型檢測元信息和所述第一框架類型對應的第二請求失敗處理函數;
在所述基于所述第一請求數據調用所述第一框架類型對應的第二業務邏輯處理函數前,還包括:
利用所述第二入參類型檢測元信息檢測所述第一請求數據,獲取第一請求檢測結果;
當所述第一請求檢測結果為失敗時,則調用第二請求失敗處理函數后退出。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京字節跳動網絡技術有限公司,未經北京字節跳動網絡技術有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010085254.3/1.html,轉載請聲明來源鉆瓜專利網。





