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

一种基于不重启的动态新增和改变数据接口返回值方法

文献发布时间:2024-04-18 19:58:30


一种基于不重启的动态新增和改变数据接口返回值方法

技术领域

本发明涉及数据开发技术领域,尤其涉及一种基于不重启的动态新增和改变数据接口返回值方法。

背景技术

随着越来越多的企业开始做数字化转型,随着更多服务以信息系统的方式提供,如今企业中都会有各种各样的数据,为了更好的利用这些数据,进行经营分析,都会搭建自己的数据系统,也叫数据看板,如图1;

在开发这种系统的时候,通常的技术方案是页面有很多个接口来返回数值,图1中这些数据。但这种方案都会有问题,一旦需要新增接口,或者是需要修改接口中的任意的数值,数字的取值逻辑,都需要重新编译代码,打包还有重启服务器,这样不但降低了工作效率,也让增加了开发人员后期对于软件的维护成本;

为此,我们设计一种基于不重启的动态新增和改变数据接口返回值方法,用于对上述技术问题提供另一种技术方案。

发明内容

基于此,有必要针对上述技术问题,提供一种基于不重启的动态新增和改变数据接口返回值方法,解决上述背景技术中提出的技术问题。

为了解决上述的技术问题,本发明采用了如下技术方案:

一种基于不重启的动态新增和改变数据接口返回值方法,步骤如下:

S1:页面统一请求数据接口;

S2:数据接口拿相应的入参中的数据ID,根据数据ID去请求查询语句的模版信息;

S3:获取到模版中的语句,接口把相应的入参进行处理替换;

S4:渲染接口把渲染后的语句发送给数据库进行执行,得到返回结果返回给数据接口;

S5:数据接口把返回的值转换为结构化数据。

作为本发明提供的所述的一种基于不重启的动态新增和改变数据接口返回值方法的一种优选实施方式,所述S1步骤中的数据接口不会改变,不需要修改。

作为本发明提供的所述的一种基于不重启的动态新增和改变数据接口返回值方法的一种优选实施方式,所述S2步骤中,根据数据ID去请求查询语句的模版信息,步骤如下:

查询步骤是通过数据ID请求内存数据库,并将请求的数据进行返回。

作为本发明提供的所述的一种基于不重启的动态新增和改变数据接口返回值方法的一种优选实施方式,当通过内存数据库Redis,请求DataId为query-table的模板,则运行命令GET‘query-table’得到模板查询语句模板,语句模板中包含需要替换的入参以及数据库进行执行的查询语句。

作为本发明提供的所述的一种基于不重启的动态新增和改变数据接口返回值方法的一种优选实施方式,所述S3步骤中,模板中的数据替换,步骤如下:

找到所有语句中的变量,根据传入的参数找到相同名称的arg1替换成传入的参数。

可以毫无疑义的看出,通过本申请的上述的技术方案,必然可以解决本申请要解决的技术问题。

同时,通过以上技术方案,本发明至少具备以下有益效果:

本发明提供的一种基于不重启的动态新增和改变数据接口返回值方法,通过方法的改机,能够提高开发效率,由于不存在修改代码,重新编译,重新部署的时间,改完立即生效,同时提高了数据接口的扩展能力,即使底层数据表或者数据结构不管如何变动,都不需要修改现有接口。

附图说明

为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为现有技术示意图;

图2为本发明的流程图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

为了使本技术领域的人员更好地理解本发明方案,下面将结合附图,对本发明实施例中的技术方案进行清楚、完整地描述。

需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征和技术方案可以相互组合。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

参照图2,一种基于不重启的动态新增和改变数据接口返回值方法,步骤如下:

S1:页面统一请求数据接口,此接口不会变,也不需要修改;

S2:数据接口拿相应的入参中的数据ID(DataID),根据数据ID去请求查询语句的模版信息。

内存数据库通常是以K,V方式存储,所以查询步骤是通过Key(DataID)请求内存数据库,然后会返回,如果使用内存数据库Redis,请求DataId为query-table的模板,那需要运行命令GET‘query-table’得到模板查询语句模板,查询语句模版通常为如下语句:

select column1,column2 from table1 where columnA=${arg1}。

语句中包含需要替换的入参,以及数据库可以执行的查询语句。

S3:获取到模版中的语句,接口把相应的入参进行处理替换,处理步骤如下,找到所有语句中的变量比如${arg1},根据传入的参数找到相同名称的arg1替换成传入的参数;

比如说上面的语句通过替换就会被染成了下面的查询语句:

select column1,column2 from table1 where columnA='a'。

S4:渲染接口把渲染后的语句发送给数据库进行执行,得到返回结果返回给数据接口。

S5:数据接口把返回的值转换为结构化数据如下:

column1:a,column2:b,通过加字符串替换叠加的方式;

转换为页面可以直接用的JSON数据,如下

{

"column1":"a",

"column2":"b"

}

然后进行进行返回。

当有需要新增接口的时候,只需要新增内存数据库中,存储的查询语句模版,并为其编写查询条件,查询条件的编写是根据需求然后写成数据库查询语句,但与数据库查询语句不同的是,查询语句中动态的参数需要写成${}的形式。

比如查询某个日期的数据需要写成如下:

selectcolumn1,column2fromtable1wherecolumnA='${day}'

然后取一个唯一不重复的数据ID。这些都做完之后,页面直接请求新增的数据ID就会按照上面讲到的流程,返回相应的数据,不需要修改任何接口,也不需要重新进行部署,直接生效。当修改的时候只需要修改查询语句模版即可,数据改后会即时生效。

以上公开的本发明优选实施例只是用于帮助阐述本发明。优选实施例并没有详尽叙述所有的细节,也不限制该本发明仅为所述的具体实施方式。显然,根据本说明书的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本发明的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本发明。本发明仅受权利要求书及其全部范围和等效物的限制。

相关技术
  • 一种基于动态数据接口的交易清分方法及系统
  • 一种基于动态配置的数据接口的实现方法及装置
技术分类

06120116499325