掌桥专利:专业的专利平台
掌桥专利
首页

数据封装方法、装置、电子设备及存储介质

文献发布时间:2023-06-19 11:16:08


数据封装方法、装置、电子设备及存储介质

技术领域

本发明涉及数据封装领域,尤其涉及一种数据封装方法、装置、电子设备及存储介质。

背景技术

对于目前的物联网或互联网的项目,在服务器与应用端的分离度越来越高的情况下,端与端进行交互的数据接口面临着版本兼容的问题。

由于应用端(及服务端)产品随着技术的发展不断更新,其接口所要传输的数据也在不断地迭代更新,这对应用端和服务端的开发工作也造成了一定的困难。在应用端上,有的应用端产品会采用让用户强制更新的方式,让应用始终使用最新版的接口;然而,在服务端开发中,许多开发者都是在早期接口的逻辑上进行修改,这导致代码的处理逻辑变得越发复杂和冗余,或者会采取针对不同的版本开发多个对应的接口的方式,但这会使得接口的统一管理变得困难。

面对接口数据版本兼容的问题,目前许多公司会选择在服务端开发上作解决。具体地,采用修改原有接口逻辑的方式,通常是在发送数据的那一层中(即在应用端),对服务端的接口版本作版本判断,根据不同的服务端接口版本,在应用端将数据封装成与服务端接口版本对应的数据格式,然后再进行发送,这样做会出现的问题是,在每一次的更新中,都要修改程序的逻辑,以确保在应用端上能够判断出服务端的接口版本并对应地进行封装处理,并且会不断增加应用端程序中的接口判断逻辑和数据处理,使得代码的结构变得越来越复杂。

此外,还有一种现有解决方案是:根据不同应用端接口版本,在服务端对应开发使用相应的接口,即服务端对于每一次更新都新开发一个对应的新接口,那么服务端的开发和运营成本也将大幅提高。

发明内容

为了克服现有技术的不足,本发明的目的在于提供一种数据封装方法、装置、电子设备及存储介质,以解决目前应用端和服务端的接口兼容问题。

本发明的目的采用如下技术方案实现:

一种数据封装方法,包括以下步骤:

步骤S10、调用数据适配器对待处理数据进行数据封装,得到数据包;

步骤S20、判断接收所述待处理数据的接口版本与所述数据适配器指定的接口版本是否匹配,若是,则输出所述数据包;否则将所述数据包记为所述待处理数据,并传输至下一版本的所述数据适配器;

步骤S30、重复所述步骤S10至所述步骤S20,直至输出所述数据包;

步骤S50、判断所述步骤S30的执行次数是否超过预设值,若是,则输出错误提示信息,否则继续执行所述步骤S30。

在某些可选的实施例中,在所述步骤S10之前,还包括:

步骤S1、判断接收所述待处理数据的接口版本是否为最高版本,若是,则调用最高版本的所述数据适配器对所述待处理数据进行数据封装,得到并输出所述数据包;否则执行所述步骤S10。

在某些可选的实施例中,在所述步骤S20中,判断接收所述待处理数据的接口版本与所述数据适配器指定的接口版本是否匹配的步骤还包括:

判断接收所述待处理数据的接口的版本号是否小于所述数据适配器指定的接口的版本号。

在某些可选的实施例中,在首次执行所述步骤S10时,调用最低版本的所述数据适配器对所述待处理数据进行数据封装。

在某些可选的实施例中,在所述步骤S20中,否则将所述数据包记为所述待处理数据,并传输至下一版本的所述数据适配器的步骤还包括:

将所述待处理数据传输至下一更高版本的所述数据适配器。

为了解决相同的技术问题,本发明还提供了一种数据封装装置,包括:

调用模块,用于调用数据适配器对待处理数据进行数据封装,得到数据包;

判断模块,用于判断接收所述待处理数据的接口版本与所述数据适配器指定的接口版本是否匹配,若是,则输出所述数据包;

传输模块,用于将所述数据包记为所述待处理数据,并传输至下一版本的所述数据适配器。

在某些可选的实施例中,所述判断模块还用于判断接收所述待处理数据的接口版本是否为最高版本。

为了解决相同的技术问题,本发明还提供了一种电子设备,包括处理器、存储器以及存储于所述存储器上且可在所述处理器运行的计算机程序,所述处理器执行所述计算机程序时实现上述的数据封装方法。

为了解决相同的技术问题,本发明还提供了一种计算机可读存储介质,其存储有计算机指令,所述计算机指令被处理器执行时实现上述的数据封装方法的步骤。

相比现有技术,本发明的有益效果在于:

采用多个链式连接的数据适配器,逐一对待处理数据进行数据封装,判断接收待处理数据的接口版本与数据适配器指定的接口版本是否匹配,若匹配,则能输出数据包,若不匹配,则将已封装的待处理数据传输至下一版本的数据适配器进行数据封装,这使得待处理数据的封装能够根据接收待处理数据的接口版本自行迭代封装,每当接收数据的接口版本升级,只需增加一个针对本次接口版本升级的数据适配器,该数据适配器用于对本次接口版本新增或修改的数据内容做处理,无需重复编写该接口早期版本的数据处理操作。

附图说明

图1为发明的数据封装方法的简易流程图;

图2为发明的数据封装方法的流程图;

图3为发明的数据封装装置的结构示意图;

图中:

100、调用模块;200、判断模块;300、传输模块。

具体实施方式

为了便于理解本发明,下面将参照相关附图对本发明进行更全面的描述。附图中给出了本发明的较佳的实施例。但是,本发明可以用许多不同的形式来实现,并不限于本文所描述的实施例。相反地,提供这些实施例的目的是使对本发明的公开内容的理解更加透彻全面。

需要说明的是,当元件被称为“固定于”另一个元件,它可以直接在另一个元件上或者也可以存在居中的元件。当一个元件被认为是“连接”另一个元件,它可以是直接连接到另一个元件或者可能同时存在居中元件。本文所使用的术语“垂直的”、“水平的”、“左”、“右”以及类似的表述只是为了说明的目的。

除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。本文所使用的术语“及/或”包括一个或多个相关的所列项目的任意的和所有的组合。

结合图1和图2所示,示意性地显示了本发明的数据封装方法,包括以下步骤:

在本实施例中,将以应用端的业务数据(下称待处理数据)发送至服务端的过程来描述。

步骤S1、判断接收待处理数据的接口版本是否为最高版本;

若是,则调用最高版本的数据适配器对待处理数据进行数据封装,得到并输出数据包;

否则,需要将待处理数据转换封装成早期接口版本的格式再发送,则执行步骤S10。

步骤S10、调用数据适配器对待处理数据进行数据封装,得到数据包;

具体地,在首次执行步骤S10时,调用最低版本的数据适配器对待处理数据进行数据封装,并得到并输出数据包。

步骤S20、判断接收待处理数据的接口版本与数据适配器指定的接口版本是否匹配;具体地,判断接收待处理数据的接口(即服务端的接口)的版本号是否小于数据适配器指定的接口的版本号;若是,即判断接收待处理数据的接口 (即服务端的接口)的版本号小于数据适配器指定的接口的版本号,则执行步骤S40,此时的数据包与接收待处理数据的接口兼容;否则执行步骤S21。

步骤S21、即判断接收待处理数据的接口的版本号(即服务端的接口)大于或等于数据适配器指定的接口的版本号,这说明该步骤下的数据包仍然与接收待处理数据的接口不兼容,需继续对数据包进行数据封装处理,因此,将数据包记为待处理数据,并传输至下一更高版本的数据适配器。

步骤S30、重复步骤S10至步骤S20,直至得到数据包。因此,在该数据封装方法中,系统会根据若干个数据适配器所组成的链式结构,从最低版本的数据适配器开始进行版本判断及数据封装,并根据接收数据的接口版本(即服务端的接口),将数据包逐一传递至下一更高版本的数据适配器,直至数据适配器指定的接口版本与服务端的接口版本相匹配。

步骤S40、输出数据包。

步骤S40、判断步骤S30的执行次数是否超过预设值,若是,则输出错误提示信息,否则继续执行步骤S30。

具体地,对步骤S30的执行次数进行计算,当执行次数超过一预设值,则输出错误提示信息,避免数据封装操作进入死循环,否则继续执行步骤S30。

以Java为例,将每一个数据适配器所具有的共有功能(版本定位,数据封装,链式管理)抽取出来,写在抽象类中,开发中每一个数据需要适配转换的版本中定义一个适配器类,继承该抽象类。该适配器类实现针对这一版本的数据适配处理操作(共有处理和特别处理)、指定当前的版本号(用于版本定位,小于该版本号的接口才会使用该适配器进行数据处理)以及指定上一个版本的适配器(用于将每一个版本的适配器连接成链式),定位好这个适配器类后,在一个配置类中将最新版本的数据适配器指定为该适配器类。

其中,共有处理指的是本版本的数据处理操作,对于下一个版本及以后的所有版本都需要用到的,则写在数据共有处理方法里,数据封装就是按照版本顺序依次调用每一个版本的适配的共有处理方法,逐步将数据封装成需要的格式。

特别处理指的是只针对本版本,而后续版本不会再使用的数据处理操作则写在特别处理方法中,版本定位过程中,定位到需要的那个适配器时(也就是调用完本版本及先前版本适配器的共有处理方法后)会调用本版本的特别处理方法。

每当接收数据的接口版本升级,只需增加一个针对本次接口版本升级的数据适配器,该数据适配器用于对本次接口版本新增或修改的数据内容做处理,无需重复编写该接口早期版本的数据处理操作。

为了解决相同的技术问题,本发明还提供了一种数据封装装置,如图3,包括:

调用模块100,用于调用数据适配器对待处理数据进行数据封装,得到数据包;

判断模块200,用于判断接收待处理数据的接口版本与数据适配器指定的接口版本是否匹配,若是,则输出所述数据包;并用于判断接收待处理数据的接口版本是否为最高版本;

传输模块300,用于将数据包记为待处理数据,并传输至下一版本的数据适配器。

为了解决相同的技术问题,本发明还提供了一种电子设备,包括处理器、存储器以及存储于存储器上且可在处理器运行的计算机程序,处理器执行计算机程序时实现上述的数据封装方法。

为了解决相同的技术问题,本发明还提供了一种计算机可读存储介质,其存储有计算机指令,计算机指令被处理器执行时实现上述的数据封装方法的步骤。

相比现有技术,本发明的有益效果在于:

采用多个链式连接的数据适配器,逐一对待处理数据进行数据封装,判断接收待处理数据的接口版本与数据适配器指定的接口版本是否匹配,若匹配,则能输出数据包,若不匹配,则将已封装的待处理数据传输至下一版本的数据适配器进行数据封装,这使得待处理数据的封装能够根据接收待处理数据的接口版本自行迭代封装,每当接收数据的接口版本升级,只需增加一个针对本次接口版本升级的数据适配器,该数据适配器用于对本次接口版本新增或修改的数据内容做处理,无需重复编写该接口早期版本的数据处理操作。

以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

相关技术
  • 数据封装方法、装置、电子设备及存储介质
  • 数据封装方法、电子设备及存储介质
技术分类

06120112860084