CN110990011A - 一种自动化接口的数据请求方法 - Google Patents
一种自动化接口的数据请求方法 Download PDFInfo
- Publication number
- CN110990011A CN110990011A CN201911242097.6A CN201911242097A CN110990011A CN 110990011 A CN110990011 A CN 110990011A CN 201911242097 A CN201911242097 A CN 201911242097A CN 110990011 A CN110990011 A CN 110990011A
- Authority
- CN
- China
- Prior art keywords
- data
- database
- query
- request
- interface
- 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
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
- G06F8/315—Object-oriented languages
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明请求保护一种自动化接口的数据请求方法,属于计算机领域。达到使前端开发人员能够自主获取数据库数据,提供一套“数据控制器”格式的对象,在该对象中配置模块,规定模块的权限和需要请求响应的数据字段,然后通过网络请求将改“数据控制器”发送到后台服务器,后台通过解析该对象,拼接为sql语句,连接数据库并执行,然后返回固定结构的响应数据。后端解析改“数据控制器”对象的时候自动校验用户角色和操作权限,防止sql注入。将这种获取数据库的方式封装到前端页面组件中,达到可以在组件中配置“数据控制器”对象自动获取数据库数据,而不需要额外发送http请求,数据获取完全由前端人员自己定义,减少与后端人员交互所耗费的时间。
Description
技术领域
本发明属于计算机领域,尤其涉及组件化网站系统的开发,适应各类需要频繁发送网络请求的应用系统。
背景技术
随着Web应用的不断深化,前端开发模式是提高开发质量和开发效率的关键要素。网络的规模迅速扩张,在进行网站开发的过程中需要进行很多数据请求操作,每个接口都需要前后端人员定义接口格式,写接口文档,然后等待后端人员开发好数据接口,花费大量时间,开发者需要重复进行数据请求操作。每一个数据请求都需要前后端人员制定接口格式,编写接口文档,然后后端提供数据接口。操作繁琐,影响软件应用开发速度。
Web环境不断更新,用户们对前端的要求也在不断提高,用户不再满足于页面功能的实现,对页面性能和网站迭代速度也提出更高的要求。
本发明的处理方式是通过设定统一的数据传递机制“数据控制器”;使前端开发人员可以在页面中编辑“数据控制器”对象,通过发送网络请求,将“数据控制器”对象发送到后端服务器;定义公共查询接口和保存接口;后端解析“数据控制器”对象,验证用户权限;拼接sql语句,连接数据库;最后返回数据到前端,进行页面渲染。
本发明涉及到前端、后端、数据库等程序开发的主要环节,作为一整套的体系,充分考虑到在程序开发的过程中存在的各种重复性数据请求操作,接口文档撰写、数据接口联调等工作,设计一种自动化接口的数据请求方法,使得前端开发人员能够自主进行常规数据增删改查的工作,自主获得页面操作所需要的数据,提高软件应用开发速度。
发明内容
本发明旨在解决以上现有技术的问题。提出了一种自动化接口的数据请求方法。本发明的技术方案如下:
一种自动化接口的数据请求方法,其包括以下步骤:
设定统一的数据传递机制“数据控制器”;在页面中编辑“数据控制器”对象,发送网络请求;定义公共查询接口和保存接口;后端解析“数据控制器”对象,验证用户权限;拼接sql语句,连接数据库;返回数据到前端,进行页面渲染。
进一步的,所述设定统一的数据传递机制“数据控制器”具体包括:通过设定“数据控制器”对象配置组件视图展示所需要的数据,“数据控制器”对象中的模板是请求数据所属数据库表,同时在“数据控制器”中可以配置模块权限和后端要返回的数据字段,也可以配置获取的数据的查询条件,对获取的数据进行过滤,同时提供查询前和查询后的回调方法,数据请求字典则是组件获取数据所需要发送到服务器的数据字段。
进一步的,所述在页面中编辑“数据控制器”对象,发送网络请求,具体包括;前端人员编辑“数据控制器”对象的数据格式,定义请求所属模块(模块与数据库表名相同)、前端需要的数据字段、分页信息、过滤字段获取到对应id的一组数据,然后发送网络请求,请求接口是公共接口/data/public/query,发送给后端的数据是“数据控制器”对象,将获取到的数据给回调函数中,前端可以从res对象中获取到对应数据。
进一步的,所述定义公共查询接口和保存接口,具体包括;后端使用java进行开发,使用jdbc链接数据库,编写数据查询接口/data/query和保存接口/data/save。在前端请求到达接口之前,进行用户验证;用户和模块绑定,在模块中定义权限;通过在数据库定义用户能操作的模块,后端在收到网络请求的“数据控制器”对象的模块名称之后,会自动去数据库查看用户是否有该模块的操作权限,有权限则从数据库查询数据返回,没有权限则提示没有权限。
进一步的,所述后端解析“数据控制器”对象,验证用户权限,具体包括:
在公共接口内部判断用户操作权限和要操作的模块和数据库表,根据“数据控制器”对象中的query查询条件,查询数据库数据后将查询到的数据响应前端的网络请求;服务器查询返回数据结构固定,数据库查询的数统一在rows对象中,方便前端页面数据的渲染。
进一步的,所述拼接sql语句,连接数据库;
步骤1:检查“数据控制器”对象头部,判断用户操作数据库权限
步骤2:判断前端请求的接口是/data/save,还是/data/query。
步骤3:如果是/data/save,则会进一步判断“数据控制器”的用户的数据操作方式,操作方式包括add、edit、delete三种,如果是/data/query,则用户的数据操作方式默认只有一种see。
步骤4:进一步的,如果操作是add则,sql语句操作就是INSERT,如果是edit则是UPDATE,如果是detele则是DELETE,如果是see则是SELECT。
步骤5:继续解析“数据控制器”对象,获得需要查询的字段信息,字段名对应数据库表的字段名。
步骤6:解析“数据控制器”对象中的模块名,模块名对应数据库表名。
通过上面的步骤,获得最基础的sql语句,后端内部进行了更细致的处理,可达到多表查询等复杂sql语句拼接。
进一步的,将后端操作逻辑进行封装,生成架包;同时将前端构建“数据控制器”对象和对象相属性操作和回调函数相关方法进行封装,生成依赖包;在使用的时候引入依赖包,达到数据完全由请求指定返回内容,使前端能够自主获取和操作数据库数据的能力。
进一步的,包括两个公共数据请求接口/data/query和/data/save,/data/query主要实现数据查询,/data/save接口内部判断用户操作类型add,delete,edit来实现数据的增删改操作。
本发明的优点及有益效果如下:
1、本发明相对于传统RESful API开发方式,前端需要的数据完全由请求指定返回内容,避免返回后端接口返回一些不需要的字段和对象;
2、本发明提供数据公共接口/data/query,完全由前端/客户端发的请求指定返回的JSON内容与结构,可任意组合任意嵌套,后端完全是自动解析不需要写代码,减少前后端定义接口格式的时间。
3、减少前后端人员定义接口文档的时间,同时,避免因为文档过时,与接口不同步造成的问题。
4、前端发送“数据控制器”对象格式的数据请求之后,系统内部进行权限判断,避免数据泄露和恶意攻击。
附图说明
图1是本发明提供优选实施例方法流程图;
图2是传统接口开发流程图;
图3是本发明的后端数据操作设计图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、详细地描述。所描述的实施例仅仅是本发明的一部分实施例。
本发明解决上述技术问题的技术方案是:
如图1所示,一种自动化接口的数据请求方法,其包括以下步骤:
步骤1、设定统一的数据传递机制,通过设定“数据控制器”配置组件视图展示所需要的数据,“数据控制器”中的模板是请求数据所属数据库表,可以配置模块权限和后端要返回的数据字段,配置获取的数据的查询条件,对获取的数据进行过滤,同时提供查询前和查询后的回调方法。数据请求字典则是组件获取数据所需要发送到服务器的数据字段,“数据控制器”结构如下:
步骤2、前端人员编辑“数据控制器”数据格式,定义请求所属模块(模块与数据库表名相同)、前端需要的数据字段、分页信息、过滤字段获取到对应id的一组数据,然后发送网络请求,请求接口是公共接口/data/public/query,发送给后端的数据是“数据控制器”,将获取到的数据给回调函数中,前端可以从res对象中获取到对应数据。
步骤3、定义公共查询接口和保存接口,后端使用java进行开发,使用jdbc链接数据库,编写数据查询接口/data/query和保存接口/data/save。在前端请求到达接口之前,进行用户验证。用户和模块绑定,在模块中定义权限。通过在数据库定义用户能操作的模块,后端在收到网络请求的“数据控制器”的模块名称之后,会自动去数据库查看用户是否有该模块的操作权限,有权限则从数据库查询数据返回,没有权限则提示没有权限。
步骤4、后端解析json方法
在公共接口内部判断用户操作权限和要操作的模块和数据库表,根据“数据控制器”对象中的query查询条件,查询数据库数据后将查询到的数据响应前端的网络请求。服务器查询返回数据结构固定,数据库查询的数统一在rows对象中,方便前端页面数据的渲染。
本发明的一个方面是构建一个统一的数据传递机制,在数据传递的时候配置好请求模块,字段,数据操作权限等信息,同时通过用户配置的方式来实现数据过滤和删选。提供一些数据查询的回调方法,提供数据查询的时候对数据的相关操作。
本发明第二方面是构建两个公共数据请求接口/data/query和/data/save,/data/query主要实现数据查询,/data/save接口内部判断用户操作类型add,delete,edit等来实现数据的增删改等操作。
本发明第三方面是实现用户数据权限判断,根据用户“数据控制器”对象中分配置和数据库privilige表中配置模块,进行模块与数据库表格的映射,模块名与数据库表名保持一致,实现数据库表名与模块的对应。
为了使用的方便,本发明将后端操作逻辑进行封装,生成架包。同时将前端构建“数据控制器”对象和对象相属性操作和回调函数相关方法进行封装,生成依赖包。在使用的时候引入依赖包,就可以使用本发明来进行网站开发。达到数据完全由请求指定返回内容,使前端能够自主获取和操作数据库数据的能力。
以上这些实施例应理解为仅用于说明本发明而不用于限制本发明的保护范围。在阅读了本发明的记载的内容之后,技术人员可以对本发明作各种改动或修改,这些等效变化和修饰同样落入本发明权利要求所限定的范围。
Claims (8)
1.一种自动化接口的数据请求方法,其特征在于,包括以下步骤:
设定统一的数据传递机制“数据控制器”;在页面中编辑“数据控制器”,发送网络请求;定义公共查询接口和保存接口;后端解析前端传过来的数据源对象,验证用户权限;拼接sql语句,连接数据库;返回数据到前端,进行页面渲染。
2.根据权利要求1所述的一种自动化接口的数据请求方法,其特征在于,
所述“数据控制器”具体包括:通过设定数据源配置组件视图展示所需要的数据,数据源中的模板是请求数据所属数据库表,同时,在数据源中可以配置模块权限和后端要返回的数据字段,也可以配置获取的数据的查询条件,对获取的数据进行过滤,同时提供查询前和查询后的回调方法,数据请求字典则是组件获取数据所需要发送到服务器的数据字段。
3.根据权利要求2所述的一种自动化接口的数据请求方法,其特征在于,所述在页面中编辑“数据控制器”,发送网络请求,具体包括;前端人员编辑“数据控制器”对象的数据格式,定义请求所属模块(模块与数据库表名相同)、前端需要的数据字段、分页信息、过滤字段获取到对应id的一组数据,然后发送网络请求,请求接口是公共接口/data/public/query,发送给后端的数据是“数据控制器”的对象,将获取到的数据给回调函数中,前端可以从res对象中获取到对应数据。
4.根据权利要求3所述的一种自动化接口的数据请求方法,其特征在于,所述定义公共查询接口和保存接口,具体包括;后端使用java进行开发,使用jdbc链接数据库,编写数据查询接口/data/query和保存接口/data/save。在前端请求到达接口之前,进行用户验证;用户和模块绑定,在模块中定义权限;通过在数据库定义用户能操作的模块,后端在收到网络请求的“数据控制器”对象的模块名称之后,会自动去数据库查看用户是否有该模块的操作权限,有权限则从数据库查询数据返回,没有权限则提示没有权限。
5.根据权利要求4所述的一种自动化接口的数据请求方法,其特征在于,所述后端解析“数据控制器”对象,验证用户权限,具体包括:
在公共接口内部判断用户操作权限和要操作的模块和数据库表,根据“数据控制器”对象中的查询条件,查询数据库数据后将查询到的数据响应前端的网络请求;服务器查询返回数据结构固定,数据库查询的数统一在rows对象中,方便前端页面数据的渲染。
6.根据权利要求5所述的一种自动化接口的数据请求方法,其特征在于,
所述拼接sql语句,连接数据库;
步骤1:检查“数据控制器”对象头部,判断用户操作数据库权限;
步骤2:判断前端请求的接口是/data/save,还是/data/query;
步骤3:如果是/data/save,则会进一步判断“数据控制器”的用户的数据操作方式,操作方式包括add、edit、delete三种,如果是/data/query,则用户的数据操作方式默认只有一种see;
步骤4:进一步的,如果操作是add则,sql语句操作就是INSERT,如果是edit则是UPDATE,如果是detele则是DELETE,如果是see则是SELECT;
步骤5:继续解析“数据控制器”对象,获得需要查询的字段信息,字段名对应数据库表的字段名;
步骤6:解析“数据控制器”对象中的模块名,模块名对应数据库表名;
通过上面的步骤,获得最基础的sql语句,后端内部进行了更细致的处理,可达到多表查询等复杂sql语句拼接。
7.根据权利要求5所述的一种自动化接口的数据请求方法,其特征在于,
将后端操作逻辑进行封装,生成架包;同时将前端构建“数据控制器”对象和对象相属性操作和回调函数相关方法进行封装,生成依赖包;在使用的时候引入依赖包,达到数据完全由请求指定返回内容,使前端能够自主获取和操作数据库数据的能力。
8.根据权利要求7所述的一种自动化接口的数据请求方法,其特征在于,包括两个公共数据请求接口/data/query和/data/save,/data/query主要实现数据查询,/data/save接口内部判断用户操作类型add,delete,edit来实现数据的增删改操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911242097.6A CN110990011A (zh) | 2019-12-06 | 2019-12-06 | 一种自动化接口的数据请求方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911242097.6A CN110990011A (zh) | 2019-12-06 | 2019-12-06 | 一种自动化接口的数据请求方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110990011A true CN110990011A (zh) | 2020-04-10 |
Family
ID=70090716
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911242097.6A Pending CN110990011A (zh) | 2019-12-06 | 2019-12-06 | 一种自动化接口的数据请求方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110990011A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112558950A (zh) * | 2020-12-21 | 2021-03-26 | 北京搜房科技发展有限公司 | 系统接口生成方法及装置 |
CN114443751A (zh) * | 2022-04-11 | 2022-05-06 | 四川互慧软件有限公司 | 面向数据库简单接口的开发方法 |
CN114637497A (zh) * | 2022-05-19 | 2022-06-17 | 佛山众陶联供应链服务有限公司 | 一种接口序列化响应字段的方法及系统 |
CN117519700A (zh) * | 2023-11-10 | 2024-02-06 | 北京果壳互动科技传媒有限公司 | Web服务开发驱动器及其方法 |
-
2019
- 2019-12-06 CN CN201911242097.6A patent/CN110990011A/zh active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112558950A (zh) * | 2020-12-21 | 2021-03-26 | 北京搜房科技发展有限公司 | 系统接口生成方法及装置 |
CN114443751A (zh) * | 2022-04-11 | 2022-05-06 | 四川互慧软件有限公司 | 面向数据库简单接口的开发方法 |
CN114443751B (zh) * | 2022-04-11 | 2022-12-30 | 四川互慧软件有限公司 | 面向数据库简单接口的开发方法 |
CN114637497A (zh) * | 2022-05-19 | 2022-06-17 | 佛山众陶联供应链服务有限公司 | 一种接口序列化响应字段的方法及系统 |
CN114637497B (zh) * | 2022-05-19 | 2022-09-16 | 佛山众陶联供应链服务有限公司 | 一种接口序列化响应字段的方法及系统 |
CN117519700A (zh) * | 2023-11-10 | 2024-02-06 | 北京果壳互动科技传媒有限公司 | Web服务开发驱动器及其方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110990011A (zh) | 一种自动化接口的数据请求方法 | |
US10558434B2 (en) | Rule-based automatic class generation from a JSON message | |
US8712965B2 (en) | Dynamic report mapping apparatus to physical data source when creating report definitions for information technology service management reporting for peruse of report definition transparency and reuse | |
US5737592A (en) | Accessing a relational database over the Internet using macro language files | |
US20040006549A1 (en) | Micro edition dynamic object-driven database manipulation and mapping system | |
US9967370B2 (en) | OData enabled mobile software applications | |
US9251222B2 (en) | Abstracted dynamic report definition generation for use within information technology infrastructure | |
US10592509B2 (en) | Declarative rules for optimized access to data | |
US6507833B1 (en) | Method and apparatus for dynamically rendering components at run time | |
CN111488143A (zh) | 一种基于Springboot2代码自动生成装置和方法 | |
CN111666072A (zh) | 一种软件代码及文档机器人方法 | |
KR20110063324A (ko) | 자동화된 구성요소를 가진 모델-기반 데이터 보관 시스템 | |
US20070073675A1 (en) | Database query translation | |
CN114356971A (zh) | 数据处理方法、装置以及系统 | |
CN112860730A (zh) | Sql语句的处理方法、装置、电子设备及可读存储介质 | |
CN114036177A (zh) | 基于组件的智能报表的设计与实现方法 | |
CN116737127A (zh) | 低代码开发方法、装置、设备和存储介质 | |
TWI629602B (zh) | 互動式網頁程式自動產生方法 | |
CN112860265A (zh) | 一种源代码数据库操作异常检测方法及装置 | |
US8386500B2 (en) | Apparatus, system, and method for XML based disconnected data access for multivalued/hierarchical databases | |
US11093492B1 (en) | System and method of fetching data from an external program | |
CN114925142A (zh) | 一种orm框架的多类型数据库兼容方法、装置、设备及介质 | |
CN114281842A (zh) | 一种数据库分表查询的方法及设备 | |
KR20040077535A (ko) | 선택된 객체에 관한 정보에 대한 요구를 생성하는 시스템및 방법 | |
CN106980496B (zh) | 基于fog数据总线的工具集成方法及系统 |
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 |