当前位置: 首页 > 专利查询>浙江大学专利>正文

一种基于本体的RESTful API代码自动生成方法技术

技术编号:18237405 阅读:25 留言:0更新日期:2018-06-17 00:35
本发明专利技术公开了一种基于本体的RESTful API代码自动生成方法,借助本体语义技术通过对数据库进行本体建模,用本体语言描述数据库结构关系,并将模型可视化。预先添加HTTP协议中的动词可视化组件,对可视化后的数据库模块组件进行添加、拖拽、连接等操作描述特定RESTful API想要实现的功能。相比其他代码自动生成方法需要手动录入每个表具体结构,采用本体建模方式能更准确地描述数据库底层的关系,生成的树状结构模型结构化、计算机可读,能够很好的应对前端多表联查的复杂需求。底层数据库可视化,以拖拽、连接组件的方式描述Web/Mobile前端数据功能需求更加的清晰明确不易出错,同时大大减少了后端开发人员的工作量,甚至前端开发人员也可以根据自己的需求自定义接口。 1

An automatic RESTful API code generation method based on Ontology

This invention discloses an automatic generation method of RESTful API code based on ontology, modeling the database by ontology semantic technology, describing the relationship of database structure with ontology language, and visualizing the model. The verb visualization components in the HTTP protocol are added in advance to add, drag and connect to the visualized database module components, and describe the functions that specific RESTful API wants to achieve. Compared with other code automatic generation methods, it is necessary to manually enter the specific structure of each table, and the ontology modeling method can describe the underlying database more accurately. The generated tree structure model is structured and the computer is readable, and it can deal with the complex needs of the multi table search in the front end. The underlying database visualization, the way to drag and connect components to describe the Web/Mobile front-end data function needs more clear and clear and not error prone, at the same time greatly reduce the workload of the backend developers, and even the front-end developers can also customize the interface according to their needs. One

【技术实现步骤摘要】
一种基于本体的RESTfulAPI代码自动生成方法
本专利技术计算机
,尤其涉及一种基于本体的RESTfulAPI代码自动生成方法。
技术介绍
RESTful架构是目前流行的互联网软件架构,它结构清晰、符合标准、易于理解、扩展方便,得到越来越多网站以及应用的采用。但是REST资源化的请求适合于面向简单的请求,对于具有复杂关联的请求,后端必须添加一个新的接口专门针对这种特殊请求进行响应。随着Web/Mobile端越来越复杂的数据需求,后端的RESTfulAPI开发人员需要针对需求进行繁琐的数据查询、数据组合以及文档编辑工作,极易出现错误。类似的API代码自动生成工具有很多,比如rails自带的scaffold功能,以及ActiveAdmin/RailsAdmin等,但是这些都是一套完整的系统,前后端不分离,修改系统页面困难而且只支持单表的CRUD操作。而Kaola在此之上对此做了改进,能够支持多表之间的关联操作而且前后端分离。但是Kaola也是基于rubyonrails开发的,对于Windows操作系统以及mysql数据库之外不能做到完全兼容。而且Kaola提供了数据库中所有表的CRUD接口,接口能力宽泛不能直接暴露在网络上必须部署在一个API网关后面,无法面对复杂的Web/Mobile端需求制定针对性高效的接口。
技术实现思路
本专利技术的目的在于针对现有技术的不足,提供一种基于本体的RESTfulAPI代码自动生成方法。本专利技术的目的是通过以下技术特征来实现的:一种基于本体的RESTfulAPI代码自动生成方法,该方法包括以下步骤:(1)利用本体模型描述数据库底层的数据关系,具体步骤如下:(1.1)通过语义转换工具D2R自动将关系型数据库的表数据结构转换成为虚拟的RDF图,其中将表转换为本体建模元语中的概念(Concept)或类(Class),将字段转换为类中的属性;(1.2)向本体模型中添加函数(Function)以描述表中的主键与非主键间的关系,函数(Function)的形式定义为F:C1×C2×…×Cn-1→Cn,在该关系中,第n个元素由前n-1个元素唯一确定;(1.3)向本体模型中添加对象属性,描述类与类之间的关系;(2)通过前端技术将本体模型可视化,通过拖拽可视化模型组件描述Web/Mobile前端数据功能需求,将描述过程的参数传递给预先定义的RESTfulAPI代码模版中,最终形成对应需求的RESTfulAPI代码文件,具体步骤如下:(2.1)将本体模型中的每个概念(Concept)或类(Class)通过前端技术可视化形成多个单独的model组件;(2.2)将HTTP动词如GET、POST等预先设置为Verb组件;(2.3)预先定义RESTfulAPI代码模板,将RESTfulAPI代码模板设置为js组件,用于根据model组件和Verb组件传递的参数自动生成JavaScript代码;(2.4)设置content组件,用于将js组件生成的JavaScript代码解析生成相应的字符文件。进一步地,所述步骤(1.3)中类与类之间的关系包括一对多以及多对多的关系。进一步地,所述步骤(1)中,将本体模型以XML文件格式形式导出。进一步地,所述步骤(2)中,本体模型的可视化可采用bootstrap、jsplumb生成图形化界面。进一步地,所述步骤(2.3)中,组件之间参数传输以JSON格式进行。进一步地,每个model组件对应关系型数据库中的一个表,描述了表内部的关系以及表与表之间的关系。进一步地,每个Verb组件对应HTTP协议中的一种API互动方式,比如POST或GET。进一步地,所述步骤(2)中,拖拽可视化模型组件描述Web/Mobile前端数据功能需求具体为:首先添加需求中涉及到的model组件和Verb组件,然后通过连线将组件进行连接。进一步地,所述步骤(2.3)中,根据model组件和Verb组件传递的参数自动生成JavaScript代码,具体为:首先利用hibernate将model组件和Verb组件传递的参数自动生成sql查询语句,然后将model组件和Verb组件传递的参数以及生成的sql查询语句一起传递给RESTfulAPI代码模板。本专利技术的有益效果是:本专利技术借助本体语义技术,通过对数据库进行本体建模,用本体语言描述数据库结构关系,并将模型可视化。预先添加HTTP协议中的动词可视化组件,对可视化后的数据库模块组件进行添加、拖拽、连接等操作描述特定RESTfulAPI想要实现的功能。相比于其他代码自动生成方法需要手动录入每个表的具体结构,采用本体建模方式能更准确方便地描述数据库底层的关系,生成的树状结构模型结构化、计算机可读,能够很好的应对前端多表联查的复杂需求。底层数据库可视化,以拖拽、连接组件的方式描述Web/Mobile前端数据功能需求更加的清晰明确不易出错,同时大大减少了后端开发人员的工作量,甚至前端开发人员也可以根据自己的需求自定义接口。附图说明图1为基于本体的RESTfulAPI代码自动生成方法流程图;图2为RESTfulAPI代码自动生成具体实施过程。具体实施方式下面结合附图和具体实施例对本专利技术作进一步详细说明。如图1、2所示,本实施例提供的一种基于本体的RESTfulAPI代码自动生成方法,该方法包括以下步骤:(1)利用本体模型描述数据库底层的数据关系,具体步骤如下:(1.1)通过语义转换工具D2R自动将关系型数据库的表数据结构转换成为虚拟的RDF图,其中将表转换为本体建模元语中的概念(Concept)或类(Class),将字段转换为类中的属性;(1.2)向本体模型中添加函数(Function)以描述表中的主键与非主键间的关系,函数(Function)的形式定义为F:C1×C2×…×Cn-1→Cn,在该关系中,第n个元素由前n-1个元素唯一确定;(1.3)向本体模型中添加对象属性,描述类与类之间的关系,包括一对多以及多对多的关系;(1.4)将本体模型以XML文件格式形式导出;(2)通过前端技术bootstrap、jsplumb等将本体模型可视化,通过拖拽可视化模型组件描述Web/Mobile前端数据功能需求,将描述过程的参数传递给预先定义的RESTfulAPI代码模版中,最终形成对应需求的RESTfulAPI代码文件,具体步骤如下:(2.1)将本体模型中的每个概念(Concept)或类(Class)通过前端技术可视化形成多个单独的model组件,每个model组件对应关系型数据库中的一个表,描述了表内部的关系以及表与表之间的关系;(2.2)将HTTP动词如GET、POST等预先设置为Verb组件;(2.3)预先定义RESTfulAPI代码模板,将RESTfulAPI代码模板设置为js组件,用于根据model组件和Verb组件传递的参数自动生成JavaScript代码,其中组件之间是以JSON格式来传递参数的;根据model组件和Verb组件传递的参数自动生成JavaScript代码,具体为:首先利用hibernate将model组件和Verb组件传递的参数自动生成sql查询语句,然后将model组件和Verb组件传递的参数以及生成的sql查询语句一起传递给R本文档来自技高网...
一种<a href="http://www.xjishu.com/zhuanli/55/201810036950.html" title="一种基于本体的RESTful API代码自动生成方法原文来自X技术">基于本体的RESTful API代码自动生成方法</a>

【技术保护点】
1.一种基于本体的RESTful API代码自动生成方法,其特征在于,该方法包括以下步

【技术特征摘要】
1.一种基于本体的RESTfulAPI代码自动生成方法,其特征在于,该方法包括以下步骤:(1)利用本体模型描述数据库底层的数据关系,具体步骤如下:(1.1)通过语义转换工具D2R自动将关系型数据库的表数据结构转换成为虚拟的RDF图,其中将表转换为本体建模元语中的概念(Concept)或类(Class),将字段转换为类中的属性;(1.2)向本体模型中添加函数(Function)以描述表中的主键与非主键间的关系,函数(Function)的形式定义为F:C1×C2×…×Cn-1→Cn,在该关系中,第n个元素由前n-1个元素唯一确定;(1.3)向本体模型中添加对象属性,描述类与类之间的关系;(2)通过前端技术将本体模型可视化,通过拖拽可视化模型组件描述Web/Mobile前端数据功能需求,将描述过程的参数传递给预先定义的RESTfulAPI代码模版中,最终形成对应需求的RESTfulAPI代码文件,具体步骤如下:(2.1)将本体模型中的每个概念(Concept)或类(Class)通过前端技术可视化形成多个单独的model组件;(2.2)将HTTP动词预先设置为Verb组件;(2.3)预先定义RESTfulAPI代码模板,将RESTfulAPI代码模板设置为js组件,用于根据model组件和Verb组件传递的参数自动生成JavaScript代码;(2.4)设置content组件,用于将js组件生成的JavaScript代码解析生成相应的字符文件。2.根据权利要求1所述的一种基于本体的RESTfulAPI代码自动生成方法,其特征在于,所述步骤(1.3)中类与类之间的关系包括一对多以及多对多的关系。3.根据权利要求1所...

【专利技术属性】
技术研发人员:李劲松周雪峰田雨周天舒王昱
申请(专利权)人:浙江大学
类型:发明
国别省市:浙江,33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1