本發(fā)明涉及計算機,特別是涉及一種基于樹結構的api差異比對方法、裝置、設備和介質。
背景技術:
1、在軟件系統(tǒng)的開發(fā)和維護過程中,由于api的不斷演進和變更,如何有效地對比和分析api之間的差異,已經成為一個重要的問題。目前api差異比對的需求主要體現在:1.版本控制:隨著軟件版本的升級,不同版本的api可能會發(fā)生變化,需要一種方法來對比不同版本之間的api差異。2.兼容性檢測:在集成多個系統(tǒng)時,必須確保新版本的api與舊版本的api兼容,差異比對有助于發(fā)現不兼容的地方。3.變更影響分析:當api發(fā)生變更時,需要分析這些變更可能帶來的影響,如對前端頁面、api用例、上游系統(tǒng)調用是否帶來影響。針對api的差異比對,目前常用的方法包括:1.文本比對:利用文本比對工具(如diff)對api文檔進行逐行對比。這種方法簡單直接,但只適用于小規(guī)模和簡單的api文檔。當api文檔內容龐大且結構復雜時,文本比對的方法顯得力不從心,難以直觀地反映api結構的變化。2.工具化比對:利用專門的api比對工具(如swagger?diff、openapidiff)對api的定義文件(如swagger、openapi)進行比對。這種方法能夠自動化地進行api差異比對,效率較高,但受限于工具的功能和api描述文件的格式。
2、可見,現有方案在功能上存在一定的局限性,無法處理復雜的api結構,并且對于大規(guī)模的api文檔,比對過程繁瑣且耗時,無法滿足使用需求。
3、針對上述問題,目前尚未提出有效的解決方案。
技術實現思路
1、基于此,有必要針對上述技術問題,提供一種基于樹結構的api差異比對方法、裝置、設備和介質。本發(fā)明支持復雜api結構的參數及屬性的差異比對,在樹結構上直觀展示api的差異,為api變更影響分析提供清晰的依據。
2、根據本發(fā)明的第一方面,提供了一種基于樹結構的api差異對比方法,包括:
3、api獲取步驟,獲取需要對比的api;
4、轉換步驟,將api文檔轉換為樹結構;
5、對比步驟,將需要對比的api通過所述樹結構進行對比;
6、記錄步驟,根據對比結果記錄參數的差異信息,以及每個參數在樹節(jié)點的層級路徑;
7、重建樹步驟,根據所述層級路徑重新構建一顆攜帶api差異信息的樹。
8、在一些實施例中,在api獲取步驟與轉換步驟之間,還包括,
9、解析步驟,將api的參數定義中引用的模型解析為具體參數。
10、在一些實施例中,所述引用的模型為父子遞歸引用的數據模型時,只進行第一層引用關系的解析。
11、在一些實施例中,在轉換步驟與對比步驟之間,還包括,
12、噪點移除步驟,檢查所述樹結構,移除與差異對比無關的屬性;
13、在一些實施例中,還包括,
14、差異查詢步驟,通過對所述攜帶api差異信息的樹進行過濾條件篩選查看api差異;
15、所述篩選條件包括:僅顯示差異、僅顯示破壞性變更。
16、在一些實施例中,所述樹結構為jsonnode樹。
17、在一些實施例中,jsonnode樹中的節(jié)點類型包括:對象類型、數組類型、值類型;
18、不同節(jié)點類型處理時進行分別處理。
19、根據本發(fā)明的第二方面,提供了一種基于樹結構的api差異對比裝置,包括:
20、api獲取模塊,用于獲取需要對比的api;
21、轉換模塊,用于將api文檔轉換為樹結構;
22、對比模塊,用于將需要對比的api通過所述樹結構進行對比;
23、記錄模塊,用于根據對比結果記錄參數的差異信息,以及每個參數在樹節(jié)點的層級路徑;
24、重建樹模塊,用于根據所述層級路徑重新構建一顆攜帶api差異信息的樹。
25、根據本發(fā)明的第三方面,提供了一種計算機設備,包括存儲器、處理器及存儲在存儲器上并可在處理器上運行的計算機程序,其特征在于,處理器執(zhí)行計算機程序時實現上述任一實施例方法的步驟。
26、根據本發(fā)明的第四方面,提供了一種計算機可讀存儲介質,其上存儲有計算機程序,計算機程序被處理器執(zhí)行時實現上述任一實施例方法的步驟。
27、本發(fā)明的有益效果:
28、1.將api版本對比抽象為兩個樹結構的對比,并根據樹節(jié)點路徑及節(jié)點數據類型進行逐一比對,確保算法的一致性和穩(wěn)定性。并且對于一些無需參與比對的參數或屬性的噪點數據進行移除提高了處理效率。
29、2.支持數據模型的檢測及自動解析,確保比對準入的一致性。支持數據模型遞歸引用的檢測,避免遞歸引用導致重復比對造成的系統(tǒng)棧溢出。
30、3.重新構建一顆攜帶api差異信息的樹,可直觀的在一個api詳情的基礎上,看出與另外一個版本的差異,通過篩選破壞性變更能夠直觀的判斷api的變更是否會對上游調用方造成影響。
1.一種基于樹結構的api差異對比方法,其特征在于,包括:
2.根據權利要求1所述的基于樹結構的api差異對比方法,其特征在于,在api獲取步驟與轉換步驟之間,還包括,
3.根據權利要求2所述的基于樹結構的api差異對比方法,其特征在于,
4.根據權利要求1所述的基于樹結構的api差異對比方法,其特征在于,
5.根據權利要求1所述的基于樹結構的api差異對比方法,其特征在于,還包括,
6.根據權利要求1所述的基于樹結構的api差異對比方法,其特征在于,
7.根據權利要求6所述的api差異對比方法,其特征在于,
8.一種基于樹結構的api差異對比裝置,其特征在于,包括:
9.一種計算機設備,包括存儲器、處理器及存儲在存儲器上并可在處理器上運行的計算機程序,其特征在于,所述處理器執(zhí)行所述計算機程序時實現權利要求1至7中任一項所述方法的步驟。
10.一種計算機可讀存儲介質,其上存儲有計算機程序,其特征在于,所述計算機程序被處理器執(zhí)行時實現權利要求1至7中任一項所述的方法的步驟。