CN114036178A - 服务接口生成方法、装置、计算机及可读存储介质 - Google Patents
服务接口生成方法、装置、计算机及可读存储介质 Download PDFInfo
- Publication number
- CN114036178A CN114036178A CN202111307687.XA CN202111307687A CN114036178A CN 114036178 A CN114036178 A CN 114036178A CN 202111307687 A CN202111307687 A CN 202111307687A CN 114036178 A CN114036178 A CN 114036178A
- Authority
- CN
- China
- Prior art keywords
- service interface
- data table
- parameters
- parameter
- input
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
- G06F8/24—Object-oriented
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种服务接口生成方法,包括步骤:当接收到服务接口生成指令时,根据所述服务接口生成指令获取数据表,根据第一预设规则将所述数据表转换为服务接口的输出参数和输入参数;根据所述输入参数确定所述输入参数对应的查询条件;根据所述输入参数、所述输出参数和所述查询条件,生成动态结构化查询语句;根据所述数据表对应的服务接口信息,建立所述服务接口信息与所述动态结构化查询语句之间的映射关系,以生成服务接口。本发明还公开了一种装置、计算机及可读存储介质。通过将本发明的服务接口生成方法应用于计算机,能够减少重复性、不必要的开发工作,方便开发人员及没有开发基础的人员发布服务接口,从而实现了大数据的快速应用。
Description
技术领域
本发明涉及计算机领域,尤其涉及一种服务接口生成方法、装置、计算机及可读存储介质。
背景技术
大数据平台可以对结构化、半结构化、非结构化数据进行ETL(Extract-Transform-Load,数据仓库技术),转换成符合平台标准的数据,存储到数据仓库中。数据采集的意义就是将大量零散的数据整合,为数据分析等业务做准备。有些标准化的数据可能在被采集之前已经经过计算或归纳,出于由于某些原因,这些源数据访问受限或不能被任意访问,所以才需要下沉至大数据平台。其它原始数据则需要经过分析和挖掘,重新回到大数据平台进行存储和管理。大数据平台的这一系列复杂的操作,最终都是为了大数据的应用,即大数据检索、大数据可视化、大数据应用、大数据安全等,为了使大数据能得到高效应用,对数据仓库的建设尤为重要。
对于不同数据仓库建设方案,SQL(Structured Query Language,结构化查询语言)语法存在差异,目前一般都是使用ORM(Object Relational Mapping,对象关系映射)框架进行开发,所以需要维护多份SQL语句;数据仓库表数量很大,而且随着业务增长,表数量仍会不断增加,再使用传统ORM业务开发模式,难以做到动态构建mapper文件、表实体、mvc框架层,开发人员将会陷入低效率的对服务接口开发的工作中去,工作将会永无休止。
发明内容
本发明提出的一种服务接口生成方法、装置、计算机及可读存储介质,旨在解决使用传统的ORM业务开发模式进行服务接口开发,工作效率低的技术问题。
为实现上述目的,本发明提供一种服务接口生成方法,所述服务接口生成方法包括以下步骤:
当接收到服务接口生成指令时,根据所述服务接口生成指令获取数据表,根据第一预设规则将所述数据表转换为服务接口的输出参数和输入参数;
根据所述输入参数确定所述输入参数对应的查询条件;
根据所述输入参数、所述输出参数和所述查询条件,生成动态结构化查询语句;
根据所述数据表对应的服务接口信息,建立所述服务接口信息与所述动态结构化查询语句之间的映射关系,以生成服务接口。
可选地,所述根据所述输入参数、所述输出参数和所述查询条件生成动态结构化查询语句的步骤包括:
将所述输入参数、所述输出参数和所述查询条件封装为对象简谱数据;获取预设的结构化查询语句模板,将与所述对象简谱数据输入到所述结构化查询语句模板,以生成动态结构化查询语句。
可选地,所述根据第一预设规则将所述数据表转换为服务接口的输出参数的步骤包括:
根据第一预设规则确定是否自动生成所述数据表对应的服务接口信息;
若是,则获取所述服务接口信息;
若否,则接收输入的服务接口信息;
根据所述服务接口信息将所述数据表转换为服务接口的输出参数。
可选地,所述根据服务接口信息将所述数据表转换为服务接口的输出参数的步骤包括:
根据服务接口信息读取所述数据表中的所有字段,遍历所述所有字段,确定遍历的字段对应的输出参数,并将遍历的字段对应的字段名称作为输出参数对应的名称,将遍历的字段对应的字段类型作为输出参数对应的类型。
可选地,所述根据第一预设规则将所述数据表转换为服务接口的输入参数的步骤包括:
根据第一预设规则读取预设个数所述数据表中的不同字段,遍历各所述不同字段,确定遍历的字段对应的输入参数,并将遍历的字段对应的字段名称作为输入参数对应的名称,将遍历的字段对应的字段类型作为输入参数对应的类型。
可选地,所述根据所述输入参数确定所述输入参数对应的查询条件的步骤包括:
当存在多个所述输入参数,配置各所述输入参数之间的组合关系,并配置各所述输入参数与各所述输入参数对应的参数值之间的逻辑关系,将所述组合关系和所述逻辑关系的集合作为查询条件。
可选地,所述根据第一预设规则将所述数据表转换为服务接口的输出参数的步骤之后,还包括:
获取所述输出参数的数量值,判断所述数量值是否大于预设值;
若所述数量值大于预设值,则获取所述数量值与所述预设值的比值,确定所述比值对应的整数值,其中,所述整数值大于所述比值;
按照所述整数值对所述输出参数进行分页处理。
此外,为实现上述目的,本发明还提供一种服务接口生成装置,所述服务接口生成装置包括:
数据转换模块,用于当接收到服务接口生成指令时,根据所述服务接口生成指令获取数据表,根据第一预设规则将所述数据表转换为服务接口的输出参数和输入参数;
语句生成模块,根据所述输入参数确定所述输入参数对应的查询条件;根据所述输入参数、所述输出参数和所述查询条件,生成动态结构化查询语句;
映射存储模块,用于根据所述数据表对应的服务接口信息,建立所述服务接口信息与所述动态结构化查询语句之间的映射关系,以生成服务接口。
此外,为实现上述目的,本发明还提供一种计算机,所述计算机包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的服务接口生成程序,其中:所述服务接口生成程序被所述处理器执行时实现如上所述的服务接口生成方法的步骤。
此外,为实现上述目的,本发明还提供一种可读存储介质,所述可读存储介质上存储有服务接口生成程序,所述服务接口生成程序被处理器执行时实现如上所述的服务接口生成方法的步骤。
本发明中的服务接口生成方法先通过当接收到服务接口生成指令时,根据所述服务接口生成指令获取数据表,根据第一预设规则将所述数据表转换为服务接口的输出参数和输入参数的步骤,使得计算机自动将数据表转换为输出参数和输入参数,省去了开发人员手动导出相关参数的工作,节省了开发人员的时间;再通过根据所述输入参数确定所述输入参数对应的查询条件,根据所述输入参数、所述输出参数和所述查询条件,生成动态结构化查询语句的步骤,省去了开发人员对不同数据表需要人工配置不同的查询条件和结构化查询语句的繁琐工作流程,大幅减少了开发人员重复的配置工作;最后通过根据所述数据表对应的服务接口信息,建立所述服务接口信息与所述动态结构化查询语句之间的映射关系,以生成服务接口的步骤,能够很方便地对服务接口进行验证或调用。本发明避免了使用传统的ORM业务开发模式进行服务接口开发,工作效率低的问题,提升了大数据的应用效率。
附图说明
图1为本发明实施例方案涉及的计算机的硬件运行环境的终端结构示意图;
图2为本发明服务接口生成方法第一实施例的流程示意图;
图3为本发明涉及的服务接口生成装置示意图;
图4为本发明服务接口生成方法第一实施例涉及的示例图;
图5为本发明服务接口生成方法第四实施例涉及的示例图。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,图1是本发明实施例方案涉及的计算机的硬件运行环境的终端结构示意图。
如图1所示,该计算机终端可以包括:处理器1001,例如CPU,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示器(Display)、输入单元比如控制面板,可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WLAN接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。作为一种计算机存储介质的存储器1005中可以包括服务接口生成程序。
可选地,计算机终端还可以包括麦克风、扬声器、RF(Radio Frequency,射频)电路,传感器、音频电路、无线模块等等。
本领域技术人员可以理解,图1中示出的计算机终端结构并不构成对计算机终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图2所示,图2是本发明服务接口生成方法第一实施例的流程示意图,在本实施例中,所述方法包括:
步骤S10,当接收到服务接口生成指令时,根据所述服务接口生成指令获取数据表,根据第一预设规则将所述数据表转换为服务接口的输出参数和输入参数;
数据表是一个临时保存数据的网格虚拟表,计算机可以通过服务接口生成程序搜索数据库中的数据表,一般由开发人员选定数据表,输入服务接口生成指令之后,计算机会自动获取开发人员选定的数据表,按照一定的规则将数据表转换为服务接口的输出参数和输入参数。
具体地,所述根据第一预设规则将所述数据表转换为服务接口的输出参数的步骤包括:
步骤a,根据第一预设规则确定是否自动生成所述数据表对应的服务接口信息;
若是,则执行步骤b,获取所述服务接口信息;
若否,则执行步骤c,接收输入的服务接口信息;
步骤d,根据所述服务接口信息,将所述数据表转换为服务接口的输出参数。
判断计算机是否成功自动生成了数据表对应的服务接口信息,其中,这里的服务接口信息可以为服务接口的URI(Uniform Resource Identifier,统一资源标识符)以及服务接口的ID(Identity document,身份标识号),其中的URI和数据表的名称相对应,比如,数据表的名称为admin,那么服务接口的URI就可以为/api/admin,对于服务接口的ID可以为简单的数值,比如,1、2、3,也可以为字符串等其他形式,即可根据实际需要进行预先的设置。
如果计算机已经成功自动生成了服务接口信息,就可以直接获取该服务接口信息,根据服务接口信息中和数据表有关的URI读取数据表,进而将数据表中的所有字段转换为输出参数。如果计算机没能自动生成服务接口信息,就可以输出生成服务接口失败的提示信息,交由开发人员输入服务接口信息,根据开发人员输入的服务接口信息,将数据表中的所有字段转换为输出参数。通过上述的步骤,就能够保证服务接口信息不被遗漏,进而节省了开发人员进行人工检查的时间。
在一实施例中,步骤d包括:
步骤e,根据服务接口信息读取所述数据表中的所有字段,遍历所述所有字段,确定遍历的字段对应的输出参数,并将遍历的字段对应的字段名称作为输出参数对应的名称,将遍历的字段对应的字段类型作为输出参数对应的类型。
将开发人员所选定的数据表中的所有类型的字段转换为服务接口的输出参数,例如,参照下面的表1,表1为一张数据表,
用户id | name | age | gender | class |
1 | 小明 | 17 | male | 2 |
2 | 小红 | 18 | female | 2 |
3 | 小亮 | 20 | male | 3 |
4 | 小芳 | 20 | female | 3 |
5 | 小明 | 19 | male | 4 |
表1
在这张表中,所有类型的字段有:用户id、name、age、gender、class,其中,用户id字段、age字段及class字段所对应的字段类型为数值类型的字段,更具体一点为整型的数值类型,在数据库中可以表示为int。对于name字段和gender字段所对应的字段类型为字符串类型的字段,在数据库中一般表示为char或varchar,将上述的字段转换为服务接口的输出参数,即服务接口的输出参数为:用户id、name、age、gender、class,并且隐含设置了各个输出参数的参数类型,所有参数的参数类型与所有的字段的字段类型保持一致,即用户id参数、age参数及class参数为数值类型的参数,name参数和gender参数为字符串类型的参数。通过上述的步骤,只需要经计算机遍历数据表中的全部字段,就能提取出所需要的输出参数,省去了人工提取输出参数的工作,提高了开发工作的效率。
具体地,所述根据第一预设规则将所述数据表转换为服务接口的输入参数的步骤包括:
步骤f,根据第一预设规则读取预设个数所述数据表中的不同字段,遍历各所述不同字段,确定遍历的字段对应的输入参数,并将遍历的字段对应的字段名称作为输入参数对应的名称,将遍历的字段对应的字段类型作为输入参数对应的类型。
对于服务接口的输入参数,输入参数也可以称为查询参数,即被SQL语句用来查询数据库或数据表中的数据。输入参数一般在默认的情况下,会选定数据表中的所有字段作为输入参数,即所有字段的字段名转换为了输入参数名,所有字段的字段类型转换为了输入参数的参数类型,即在这种默认的情况输入参数与输出参数一致。输入参数也可以不选择默认,比如,设置数据表的前3个字段转换为输入参数或者设置任意的几个字段转换为输入参数,这样的话,服务接口在被调用的情况下,只能输入输入参数对应的参数值才能查询到数据表中相关数据,如果输入的不是输入参数对应的参数值,比如非输入参数的输出参数对应的参数值,就查询不到数据表中的相关数据,例如,输出参数为用户id、name、age、gender、class,而设置的输入参数为用户id、name、age,如果在服务接口调用时输入gender对应的参数值male,或者class对应的参数值2,就会返回404状态(此信息代表客户端在浏览网页时,服务器无法正常提供信息,或是服务器无法回应且不知原因),或者,在服务接口调用时不存在gender和class的选择项。另外,输入参数也可以设置固定值,例如age>18,那么用户在调用服务接口时,无论是通过什么样的输入参数进行查询,都只能查询到age>18的数据,例如,一张数据表或数据库中有多个同名同姓的“小明”,用户输入name对应的参数值小明,只能返回年龄大于18的小明的有关数据,参照表1,返回的数据可以为用户id:5name:小明age:19gender:male class:4。
对于上述的输入参数的设置及输入参数固定值的设置,可以根据实际需要进行任意地设置。通过上述的步骤,只需要经计算机遍历数据表中的开发人员选定的字段,就能提取出开发人员所需要的输入参数,大幅减少了了人工提取输入参数的工作,提高了开发工作的效率。
步骤S20,根据所述输入参数确定所述输入参数对应的查询条件;
输入参数可以为一个,也可以为多个,当存在单个输入参数时,查询条件就是输入参数本身,例如,输入参数为name字段,那么在服务接口调用时只能通过输入name字段对应的参数值,比如小明,服务接口才能返回和小明相关的数据,但如果输入的是其他字段对应的参数值,比如class字段对应的3,那么服务接口会返回404状态码,即服务器无法正常提供信息,或是服务器无法回应且不知原因。
当存在多个输入参数时,需要对各个输入参数之间的组合关系进行配置,其中的组合关系为各个输入参数之间“与”、“或”的关系,计算机通过服务接口生成程序默认会选择“与”的组合关系,如果开发人员有特殊需要,也可以设置为“或”的组合关系或者“与”和“或”兼具的组合关系,在设置之后,计算机就会选择“或”的组合关系或者“与”和“或”的组合关系,对于“与”、“或”的组合关系,例如,参照表1,如果是默认的“与”的组合关系,用户在调用服务接口时,可以输入:小明、class2,那么就能返回用户id为1的相关参数;如果是选择“或”的组合关系,用户在调用服务接口时,输入:小红、age20,那么就能返回用户id为2、3、4的相关数据;如果是选择“与”和“或”兼具的组合关系,用户在调用服务接口时,输入:小明and(age17 or age19),那么就返回用户id为1和5的相关数据。
具体地,步骤S20包括:
步骤g,当存在多个所述输入参数,配置各所述输入参数之间的组合关系,并配置各所述输入参数与各所述输入参数对应的参数值之间的逻辑关系,将所述组合关系和所述逻辑关系的集合作为查询条件。
如果设置了多个输入参数,在配置了输入参数之间的“与”、“或”的组合关系的同时,还可以配置输入参数与输入参数对应的参数值之间的逻辑关系,即大于、小于、等于、包含、不包含等逻辑关系,可以将输入参数之间的组合关系和输入参数与对应的参数值之间的逻辑关系结合到一起,共同组成查询条件,例如,查询条件可以为name=?and(age>?orgender=?),那么用户在调用服务接口时,可以输入:name=小明and(age>18or gender=male),对于这种较为复杂的输入,可以通过在服务接口调用的界面为用户提供查询选择项的方式方便用户对数据的调用以及方便用户知晓可以对哪些数据进行调用。通过上述的步骤,能够省去开发人员针对每个不同的数据表都需要人工配置查询条件的重复工作,节省了开发人员的开发时间。
步骤S30,根据所述输入参数、所述输出参数和所述查询条件,生成动态结构化查询语句;
将输入参数、输出参数、查询条件一起封装成对象简谱数据,即json格式的数据,再将对象简谱数据与预先编写好的SQL语句基础模板结合就生成了动态的结构化查询语句,即动态的SQL语句,这样就可以使得能够根据不同的数据表自动生成不同的SQL语句,即通过计算机的服务接口生成程序就能够免去开发人员需要亲自根据不同的数据表编写对应的SQL语句的工作,大大节省了人力资源,提高了大数据应用的效率。
步骤S40,根据所述数据表对应的服务接口信息,建立所述服务接口信息与所述动态结构化查询语句之间的映射关系,以生成服务接口。
服务接口信息包括URI、服务接口的名称及其他业务开发的信息,将服务接口信息与上述已经生成的动态结构化查询语句建立起映射关系,并对这种映射关系进行存储。
另外,本实施例可通过服务接口可视化的方式来实现,参照图4,在开发人员选择服务接口生成选项之后,再点击创建服务接口,在此时可以点击编辑SQL模板选项,以编写结构化查询语句模板,如果在已经有结构化查询语句模板或者编写好结构化查询语句模板,就可以点击可视化编辑选项,此时,计算机可以自动根据数据表的表名生成服务接口的URI、接口名以及其他开发信息,进而计算机读取表字段,将数据表的所有字段设为服务接口的输出参数,查询参数,也即上述的输入参数与表字段同名,并根据表字段的类型设置匹配方式,也即查询条件,将结构化查询语句模板与匹配方式、输出参数、查询参数进行组装,保存为新的动态化的SQL模板,最后存储服务接口ID与新的动态化的SQL模板的映射关系,这时就生成完整的服务接口。
如果计算机没有自动根据数据表的表名生成服务接口的URI以及其他开发信息,那么就提示给开发人员,开发人员就可以自行设置服务接口的接口名、URI等信息,在开发人员设置好服务接口信息之后,计算机开始读取数据表的所有表字段,从数据表中选择接口输出参数,并可以提供是否分页的选项,如果开发人员选择分页,就可以由开发人员自行设置或者计算机根据默认的规则对接口输出参数进行分页,无论是自行设置还是默认的规则,都可以设置每页最大值和分页参数名,接下来的流程又来到了添加接口输入参数,即使开发人员没有选择分页,也进入到这一流程,在添加完接口输入参数后,就可以设置输入参数与表字段间的组合关系和输入参数之间组合关系,这两种组合关系可以概括为查询条件,最后也还是将输出参数、输入参数、查询条件与结构化查询语句模板进行组装,保存为一个新的SQL模板,进而存储服务接口ID与这一新的SQL模板的映射关系,完成了服务接口的生成工作。通过这种服务接口可视化的方式,能够使开发人员对服务接口的生成进程一目了然,方便对服务接口进行开发,大大提升了开发工作的效率,还能够减少因服务接口不能可视化而导致的开发工作问题频发的情形。
本发明中的服务接口生成方法先通过当接收到服务接口生成指令时,根据所述服务接口生成指令获取数据表,根据第一预设规则将所述数据表转换为服务接口的输出参数和输入参数的步骤,使得计算机自动将数据表转换为输出参数和输入参数,省去了开发人员手动导出相关参数的工作,节省了开发人员的时间;再通过根据所述输入参数确定所述输入参数对应的查询条件,根据所述输入参数、所述输出参数和所述查询条件,生成动态结构化查询语句的步骤,省去了开发人员对不同数据表需要人工配置不同的查询条件和结构化查询语句的繁琐工作流程,大幅减少了开发人员重复的配置工作;最后通过根据所述数据表对应的服务接口信息,建立所述服务接口信息与所述动态结构化查询语句之间的映射关系,以生成服务接口的步骤,能够很方便地对服务接口进行验证或调用。本发明避免了使用传统的ORM业务开发模式进行服务接口开发,工作效率低的问题,提升了大数据的应用效率。
进一步地,基于本发明服务接口生成方法的第一实施例提出本发明服务接口生成方法的第二实施例,在本实施例中,步骤S30包括:
步骤h,将所述输入参数、所述输出参数和所述查询条件封装为对象简谱数据;获取预设的结构化查询语句模板,将与所述对象简谱数据输入到所述结构化查询语句模板,以生成动态结构化查询语句。
在得到转换后的输入参数、输出参数及查询条件之后,将输入参数、输出参数及查询条件作为一个整体,封装成对象简谱数据,即json格式数据,同时获取预先编辑好的结构化查询语句基础模板,这种基础模板适用于各种数据表,将这种基础模板与对象简谱数据结合到一起,就生成了动态的结构化查询语句。其中,基础模板可以由开发人员进行编辑和修改,但一般情况下编辑好的基础模板即为各种数据表通用模板,具有很高的稳定性,不需要做一些改动。对象简谱数据采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得对象简谱数据成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。所以通过这种将稳定的基础模板和简洁易读易解析的对象简谱数据结合到一起生成的动态结构化查询语句既能够节省开发人员的编写SQL语句的时间,也能够提高后端的解析效率及服务接口调用时的查询效率。
进一步地,基于本发明服务接口生成方法的第一实施例提出本发明服务接口生成方法的第三实施例,在本实施例中,所述根据第一预设规则将所述数据表转换为服务接口的输出参数的步骤之后,还包括:
步骤i,获取所述输出参数的数量值,判断所述数量值是否大于预设值;
若所述数量值大于预设值,则执行步骤j,获取所述数量值与所述预设值的比值,确定所述比值对应的整数值,其中,所述整数值大于所述比值;
步骤k,按照所述整数值对所述输出参数进行分页处理。
本实施例适用于数据表中的各种数据量较多的情况,像第一实施例中的数据表表1由于所含的字段较少,只有5个,但事实上,对于由大量的数据表组成的数据库或者大量的数据组成的数据表所包含的字段是非常庞大的,如果对于这种情况不做处理的话,也会导致大数据应用的效率很低,所以在本实施例提供了一种对数据表中的字段进行分页的方案,同样地,这种方案也可以应用于各种数据库。
计算机获取到所选定的数据表中的所有的输入参数,统计输入参数的数量值,也即所选定的数据表中的字段的数量值,判断这个数量值是否大于预设的数量值,比如,可以设置预设值为20,如果输出参数的数量值大于预设的数量值,就需要对所有的输出参数进行分页,具体地,计算得到输出参数的数量值与预设值的比值。例如,预设值为20,输入参数的数量值为60,计算得到输出参数的数量值与预设值的比值为3,那么就将输出参数分为3页,每页包含20条输出参数。如果上述例子输出参数的数量值改为50,计算得到输出参数的数量值与预设值的比值为2.5,此时需要对该比值进行取整,并且所取的整数要大于比值,所以取3,那么就将输出参数分为3页,前两页每页包含20条输出参数,第三页包含10条输出参数。
进一步地,基于本发明服务接口生成方法的第一实施例提出本发明服务接口生成方法的第四实施例,在本实施例中,步骤S40之后,还包括:
步骤m,接收服务接口校验请求,所述服务接口的服务***解析所述校验请求对应的请求参数,所述请求参数包括待查询参数;
步骤n,根据所述请求参数,得到所述请求参数的哈希值,判断所述哈希值是否为有权哈希值;
步骤o,若所述哈希值为有权哈希值,则读取所述哈希值对应的缓存数据,并判断是否读取到所述缓存数据;
步骤p,若没有读取到所述缓存数据,则根据所述请求参数查询所述请求参数对应的源信息,所述源信息包括预设的结构化查询语句模板和数据源,并判断是否查询到预设的结构化查询语句模板;
步骤q,若查询到预设的结构化查询语句模板,将预设的结构化查询语句和所述待查询参数输入至服务接口的模板解析器,以得到待查询参数对应的的结构化查询语句;
步骤r,通过服务接口的结构化查询语句解析器,调用所述数据源,以获得所述请求参数对应的结果集;
步骤s,将所述结果集输入至所述缓存数据并输出所述结果集。
在本实施例中,步骤n之后,还包括:若所述哈希值为无权哈希值,则拦截所述校验请求,输出第一异常状态提示,以结束所述校验请求。步骤o之后,还包括:若读取到所述缓存数据,则输出所述请求参数对应的结果集。步骤p之后,还包括:若未查询到所述结构化查询语句模板,则输出第二异常状态提示,以结束所述校验请求。步骤r之后,还包括:若未获得所述结果集,则输出第三异常状态提示,以结束所述校验请求。
为了方便对上述步骤流程的理解,可以参照图5,如图5所示,首先开发人员向服务接口发起校验请求,服务接口会对该校验请求进行拦截,并对校验请求中的URI、输入参数进行解析,再根据URI、输入参数计算hashId(哈希值),接着对hashId进行鉴权、限流等界面逻辑,如果上述的拦截校验请求没通过,则结束整个校验流程,如果拦截校验请求通过了,开始读取缓存,如果缓存命中,则返回结果,校验通过,结束校验流程。如果缓存没有命中,根据URI查询SQL模板(预设的结构化查询语句模板),如果未查询找到SQL模板,则返回404状态,结束校验流程,查询到SQL模板后,加锁执行模板解析,向模板解析器传入模板和输入参数,模板解析器接受查询参数(输入参数)和SQL模板,输出动态的SQL语句,即模板解析器正确解析后返回模板定义的待查询参数(输入参数)的SQL语句,如果没能正常解析,则结束校验流程。在模板解析器正确解析后接下来SQL解析器通过驱动调用数据源去获得结果集,如果没有获得,就结束校验流程,如果获得结果集,就将这一结果集写入缓存,返回结果,校验通过,结束校验流程。
在服务接口生成之后,通过本实施例中的技术方案,能够全面地对服务接口进行校验,从而及时、高效地发现服务接口的各种问题,减少了开发人员人工排查服务接口异常情况的工作,节省了人力资源,提高了大数据应用的效率。
此外,参照图3,本发明还提出一种服务接口生成装置,所述服务接口生成装置包括:
数据转换模块A10,用于当接收到服务接口生成指令时,根据所述服务接口生成指令获取数据表,根据第一预设规则将所述数据表转换为服务接口的输出参数和输入参数;
语句生成模块A20,用于根据所述输入参数确定所述输入参数对应的查询条件;根据所述输入参数、所述输出参数和所述查询条件,生成动态结构化查询语句;
映射存储模块A30,用于根据所述数据表对应的服务接口信息,建立所述服务接口信息与所述动态结构化查询语句之间的映射关系,以生成服务接口。
可选地,所述语句生成模块A20,还用于:
将所述输入参数、所述输出参数和所述查询条件封装为对象简谱数据;获取预设的结构化查询语句模板,将与所述对象简谱数据输入到所述结构化查询语句模板,以生成动态结构化查询语句。
可选地,所述数据转换模块A10,还用于:
根据第一预设规则确定是否自动生成所述数据表对应的服务接口信息;
若是,则获取所述服务接口信息;
若否,则接收输入的服务接口信息;
根据所述服务接口信息将所述数据表转换为服务接口的输出参数。
可选地,所述数据转换模块A10,还用于:
根据服务接口信息读取所述数据表中的所有字段,遍历各所述所有字段,确定遍历的所有字段对应的输出参数,并将遍历的所有字段对应的字段名称作为输出参数对应的名称,将遍历的所有字段对应的字段类型作为输出参数对应的类型。
可选地,所述数据转换模块A10,还用于:
根据第一预设规则读取预设个数所述数据表中的不同字段,遍历各所述不同字段,确定遍历的不同字段对应的输入参数,并将遍历的不同字段对应的字段名称作为输入参数对应的名称,将遍历的不同字段对应的字段类型作为输入参数对应的类型。
可选地,所述语句生成模块A20,还用于:
当存在多个所述输入参数,配置各所述输入参数之间的组合关系,并配置各所述输入参数与各所述输入参数对应的参数值之间的逻辑关系,将所述组合关系和所述逻辑关系的集合作为查询条件。
可选地,所述数据转换模块A10,还用于:
获取所述输出参数的数量值,判断所述数量值是否大于预设值;
若所述数量值大于预设值,则获取所述数量值与所述预设值的比值,确定所述比值对应的整数值,其中,所述整数值大于所述比值;
按照所述整数值对所述输出参数进行分页处理。
此外,本发明还提出一种计算机,所述计算机包括存储器、处理器及存储在存储器上并可在处理器上运行的服务接口生成程序,所述处理器执行所述服务接口生成程序时实现如以上实施例所述的服务接口生成方法的步骤。
本发明的计算机具体实施方式与上述服务接口生成方法各实施例基本相同,在此不再赘述。
此外,本发明还提出一种可读存储介质,这里的可读存储介质可以为计算机可读存储介质,其特征在于,所述可读存储介质包括服务接口生成程序,所述服务接口生成程序被处理器执行时实现如以上实施例所述的服务接口生成方法的步骤。
本发明可读存储介质具体实施方式与上述服务接口生成方法各实施例基本相同,在此不再赘述。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是计算机机,手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
在本发明中,术语“第一”“第二”“第三”“第四”“第五”仅用于描述的目的,而不能理解为指示或暗示相对重要性,对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
尽管上面已经示出和描述了本发明的实施例,本发明保护的范围并不局限于此,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改和替换,这些变化、修改和替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种服务接口生成方法,其特征在于,所述服务接口生成方法包括以下步骤:
当接收到服务接口生成指令时,根据所述服务接口生成指令获取数据表,根据第一预设规则将所述数据表转换为服务接口的输出参数和输入参数;
根据所述输入参数确定所述输入参数对应的查询条件;
根据所述输入参数、所述输出参数和所述查询条件,生成动态结构化查询语句;
根据所述数据表对应的服务接口信息,建立所述服务接口信息与所述动态结构化查询语句之间的映射关系,以生成服务接口。
2.如权利要求1所述的服务接口生成方法,其特征在于,所述根据所述输入参数、所述输出参数和所述查询条件生成动态结构化查询语句的步骤包括:
将所述输入参数、所述输出参数和所述查询条件封装为对象简谱数据;获取预设的结构化查询语句模板,将与所述对象简谱数据输入到所述结构化查询语句模板,以生成动态结构化查询语句。
3.如权利要求1所述的服务接口生成方法,其特征在于,所述根据第一预设规则将所述数据表转换为服务接口的输出参数的步骤包括:
根据第一预设规则确定是否自动生成所述数据表对应的服务接口信息;
若是,则获取所述服务接口信息;
若否,则接收输入的服务接口信息;
根据所述服务接口信息将所述数据表转换为服务接口的输出参数。
4.如权利要求3所述的服务接口生成方法,其特征在于,所述根据服务接口信息将所述数据表转换为服务接口的输出参数的步骤包括:
根据服务接口信息读取所述数据表中的所有字段,遍历所述所有字段,确定遍历的字段对应的输出参数,并将遍历的字段对应的字段名称作为输出参数对应的名称,将遍历的字段对应的字段类型作为输出参数对应的类型。
5.如权利要求1所述的服务接口生成方法,其特征在于,所述根据第一预设规则将所述数据表转换为服务接口的输入参数的步骤包括:
根据第一预设规则读取预设个数所述数据表中的不同字段,遍历各所述不同字段,确定遍历的字段对应的输入参数,并将遍历的字段对应的字段名称作为输入参数对应的名称,将遍历的字段对应的字段类型作为输入参数对应的类型。
6.如权利要求1所述的服务接口生成方法,其特征在于,所述根据所述输入参数确定所述输入参数对应的查询条件的步骤包括:
当存在多个所述输入参数,配置各所述输入参数之间的组合关系,并配置各所述输入参数与各所述输入参数对应的参数值之间的逻辑关系,将所述组合关系和所述逻辑关系的集合作为查询条件。
7.如权利要求1所述的服务接口生成方法,其特征在于,所述根据第一预设规则将所述数据表转换为服务接口的输出参数的步骤之后,还包括:
获取所述输出参数的数量值,判断所述数量值是否大于预设值;
若所述数量值大于预设值,则获取所述数量值与所述预设值的比值,确定所述比值对应的整数值,其中,所述整数值大于所述比值;
按照所述整数值对所述输出参数进行分页处理。
8.一种服务接口生成装置,其特征在于,所述服务接口生成装置包括:
数据转换模块,用于当接收到服务接口生成指令时,根据所述服务接口生成指令获取数据表,根据第一预设规则将所述数据表转换为服务接口的输出参数和输入参数;
语句生成模块,根据所述输入参数确定所述输入参数对应的查询条件;根据所述输入参数、所述输出参数和所述查询条件,生成动态结构化查询语句;
映射存储模块,用于根据所述数据表对应的服务接口信息,建立所述服务接口信息与所述动态结构化查询语句之间的映射关系,以生成服务接口。
9.一种计算机,其特征在于,所述计算机包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的服务接口生成程序,其中:所述服务接口生成程序被所述处理器执行时实现如权利要求1至7中任一项所述的服务接口生成方法的步骤。
10.一种可读存储介质,其特征在于,所述可读存储介质上存储有服务接口生成程序,所述服务接口生成程序被处理器执行时实现如权利要求1至7中任一项所述的服务接口生成方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111307687.XA CN114036178A (zh) | 2021-11-05 | 2021-11-05 | 服务接口生成方法、装置、计算机及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111307687.XA CN114036178A (zh) | 2021-11-05 | 2021-11-05 | 服务接口生成方法、装置、计算机及可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114036178A true CN114036178A (zh) | 2022-02-11 |
Family
ID=80136507
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111307687.XA Pending CN114036178A (zh) | 2021-11-05 | 2021-11-05 | 服务接口生成方法、装置、计算机及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114036178A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117453732A (zh) * | 2023-12-25 | 2024-01-26 | 智业软件股份有限公司 | 一种cdss医嘱数据查询优化方法和*** |
-
2021
- 2021-11-05 CN CN202111307687.XA patent/CN114036178A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117453732A (zh) * | 2023-12-25 | 2024-01-26 | 智业软件股份有限公司 | 一种cdss医嘱数据查询优化方法和*** |
CN117453732B (zh) * | 2023-12-25 | 2024-03-01 | 智业软件股份有限公司 | 一种cdss医嘱数据查询优化方法和*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3835968B1 (en) | Creating data in a data store using a dynamic ontology | |
US7743066B2 (en) | Anonymous types for statically typed queries | |
US8019791B2 (en) | Method and system for transforming metadata modeled in the common information model into grid control target metadata | |
CN112685433B (zh) | 元数据更新方法、装置、电子设备及计算机可读存储介质 | |
CN111061464B (zh) | 解析代码生成方法、装置、设备及存储介质 | |
CN104679500B (zh) | 实体类自动生成实现方法及装置 | |
CN113360519B (zh) | 数据处理方法、装置、设备和存储介质 | |
CN107562459B (zh) | 管理***、界面生成/显示/操作方法、介质、终端 | |
CN110427188B (zh) | 单测断言程序的配置方法、装置、设备及存储介质 | |
CN111818175B (zh) | 企业服务总线配置文件生成方法、装置、设备和存储介质 | |
CN111443901B (zh) | 一种基于Java反射的业务扩展方法及装置 | |
CN111259067A (zh) | 一种基于Spring实现DAO接口的方法、装置及设备 | |
KR101810518B1 (ko) | Ifc 포맷의 bim 데이터를 이용한 객체 질의 시스템 및 방법 | |
US8099663B2 (en) | Apparatus and method for document synchronization | |
CN116244387A (zh) | 实体关系构建方法、装置、电子设备及存储介质 | |
CN114036178A (zh) | 服务接口生成方法、装置、计算机及可读存储介质 | |
CN111240953A (zh) | 一种日志处理的方法及装置、可读存储介质 | |
CN114253995A (zh) | 数据溯源方法、装置、设备及计算机可读存储介质 | |
CN114676133A (zh) | 索引创建方法、装置、设备及存储介质 | |
CN112825068B (zh) | 数据血缘生成方法及装置 | |
CN109726213B (zh) | 一种程序代码转换方法、装置、介质和计算设备 | |
CN111126008A (zh) | 基于xsd的代码生成方法、装置、计算机设备及存储介质 | |
CN115934537A (zh) | 接口测试工具生成方法、装置、设备、介质及产品 | |
CN112463156B (zh) | 一种组件属性联动校验的方法与终端 | |
CN114817300A (zh) | 基于sql语句的日志查询方法及其应用 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |