CN117331964B - 数据查询方法、装置、设备及存储介质 - Google Patents

数据查询方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN117331964B
CN117331964B CN202311630706.1A CN202311630706A CN117331964B CN 117331964 B CN117331964 B CN 117331964B CN 202311630706 A CN202311630706 A CN 202311630706A CN 117331964 B CN117331964 B CN 117331964B
Authority
CN
China
Prior art keywords
query
application program
data
program interface
configuration information
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.)
Active
Application number
CN202311630706.1A
Other languages
English (en)
Other versions
CN117331964A (zh
Inventor
楚昌胜
臧斌
魏鸣鑫
肖雪松
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Chengdu Minto Technology Co ltd
Original Assignee
Chengdu Minto Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Chengdu Minto Technology Co ltd filed Critical Chengdu Minto Technology Co ltd
Priority to CN202311630706.1A priority Critical patent/CN117331964B/zh
Publication of CN117331964A publication Critical patent/CN117331964A/zh
Application granted granted Critical
Publication of CN117331964B publication Critical patent/CN117331964B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/2433Query languages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/604Tools and structures for managing or administering access control systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Mining & Analysis (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Mathematical Physics (AREA)
  • Automation & Control Theory (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请提供一种数据查询方法、装置、设备及存储介质,其中,所述方法包括:接收查询请求,依据所述查询请求中的查询参数构建查询变量;获取所述查询请求所请求的应用程序接口的配置信息,所述配置信息是预设的,包括所述应用程序接口关联的数据源、数据源类型;依据所述查询变量和所述配置信息构建查询语句,将所述查询语句发送至应用程序接口以查询数据,上述数据查询方法支持多种数据源类型,及支持数据源的动态配置。

Description

数据查询方法、装置、设备及存储介质
技术领域
本申请涉及数据库领域,具体而言,涉及一种数据查询方法、装置、设备及存储介质。
背景技术
当前低代码、零代码技术的应用越来越成熟,基于可视化的配置页面即可进行数据表的动态创建,并基于Java工厂模式、数据持久层(ORM)框架模板、动态数据源实现动态SQL的拼装和执行,进而实现对数据表的增删改查操作接口。但这种实现方法,只能实现对单表的操作接口,其不能灵活配置请求参数,无法实现对数据库视图的查询接口,无法实现自定义SQL多表连接查询的API接口。
发明内容
本申请实施例的目的在于提供一种数据查询方法、装置、设备及存储介质,用以使得查询方法支持多种数据源类型,及支持数据源的动态配置。
第一方面,本申请提供一种数据查询方法,所述方法包括:接收查询请求,依据所述查询请求中的查询参数构建查询变量;获取所述查询请求所请求的应用程序接口的配置信息,所述配置信息是预设的,包括所述应用程序接口关联的数据源、数据源类型;依据所述查询变量和所述配置信息构建查询语句,将所述查询语句发送至应用程序接口以查询数据。
上述数据查询方法,获取查询请求所请求的应用程序接口的配置信息,依据配置信息及查询请求中的查询参数构建查询语句,通过在配置信息中的设置数据源类型进行查询语句的构建,可以使得查询方法支持多种数据源类型,并且支持数据源的动态配置。
在本申请可选实施例中,所述方法还包括:验证所述查询请求中携带的签名及访问令牌是否正确;若验证结果表示所述签名或所述访问令牌错误,则中断查询。
上述实施例中,对查询请求中签名及访问令牌进行验证,能够过滤非法的查询请求,保证数据安全。
在本申请可选实施例中,所述方法还包括:获取所述查询请求中访问令牌对应的授权编号,所述授权编号是针对调用方预先生成的;获取所述授权编号对应的应用程序接口编号;判断所获取的应用程序接口编号与所述查询请求中携带的应用程序接口编号是否一致。
上述实施例中,对查询请求中携带的应用程序接口编号的权限进行鉴权验证,保证了查询的安全性。
在本申请可选实施例中,所述依据所述查询变量和所述配置信息构建查询语句,包括:获取所述配置信息中的数据源类型;若所述数据源类型为数据表,将所述配置信息中数据表名称、查询条件及查询变量拼接到表查询SQL语句中,生成查询SQL语句;若所述数据源类型为视图,将所述配置信息中视图名称、查询条件及查询变量拼接到视图查询SQL语句中,生成查询SQL语句;若所述数据源类型为自定义SQL,将所述配置信息中查询变量拼装到自定义SQL语句的查询条件中,生成查询SQL语句。
上述实施例中,依据应用程序接口对应的数据源类型,选择不同的查询SQL语句的生成方式,使得生成的查询语句可以支持多种数据源类型。
在本申请可选实施例中,所述将所述查询语句发送至所述应用程序接口以查询数据,包括:将所述配置信息中数据源连接信息及所述查询语句发送至所述应用程序接口;其中,所述数据源连接信息用于使所述应用程序接口调用数据库连接器,依据所述数据源连接信息切换数据源连接,所述查询语句用于使所述应用程序接口执行所述查询语句,获取所述查询语句对应的查询结果。
上述实施例中,通过将配置信息中数据源连接信息发送至应用程序接口,应用程序接口通过数据库连接器切换数据源,可以实现数据源的动态切换。
在本申请可选实施例中,预先设置有调用信息,所述调用信息包括:授权编号、授权密钥、公钥、私钥,所述方法还包括:接收登录请求,所述登录请求中携带所述签名,所述签名通过所述私钥加密所述授权编号和所述授权密钥得到;通过所述公钥解密所述签名,获取所述签名携带的授权编号和授权密钥;验证所述签名携带的授权编号和授权密钥是否与本地预存的所述调用信息中的授权编号和授权密钥相同;若所述签名携带的授权编号和授权密钥与本地预存的所述调用信息中的授权编号和授权密钥相同,生成与授权编号对应的访问令牌。
上述实施例中,对发出查询请求的调用方进行身份验证,验证成功后生成访问令牌,在调用方的查询请求携带访问令牌中可以证明调用方的身份,维护了查询的安全性。
在本申请可选实施例中,所述方法还包括:对应用程序接口关联的数据源及数据源类型进行设置;确认所述数据源是否连接成功;若所述数据源连接成功,将设置的信息保存为所述配置信息。
上述实施例中,预先设置应用程序接口的配置信息,实现对应用程序接口对应数据源的说明,在使用接口时可以依据配置信息成功生成动态SQL,实现数据查询。
在本申请可选实施例中,所述接收查询请求,依据所述查询请求中的查询参数构建查询变量,包括:统一网关服务接收所有应用程序接口的所述查询请求,依据所述查询请求中的查询参数构建所述查询变量;并将所述查询变量发送至动态SQL工厂类;所述获取所述查询请求所请求的应用程序接口的配置信息,包括:所述动态SQL工厂类获取所述查询请求所请求的应用程序接口的配置信息;所述依据所述查询变量和所述配置信息构建查询语句,将所述查询语句发送至所述应用程序接口以查询数据,包括:所述动态SQL工厂类依据所述查询变量和所述配置信息构建查询语句,并将所述查询语句发送至所述应用程序接口以查询数据。
上述实施例中,使用统一网关实现对查询请求的接收,使用动态SQL工厂类实现查询语句的构建,将统一网关服务与动态SQL执行进行了分离,使得对查询请求的处理和转发、对SQL的动态拼装和执行进行解耦,两个服务可以单独执行、并行执行,不占用同一个计算机线程,提高了执行效率。
第二方面,本申请提供一种数据查询装置,所述装置包括:接收模块,用于接收查询请求,依据所述查询请求中的查询参数构建查询变量;获取模块,用于获取所述查询请求所请求的应用程序接口的配置信息,所述配置信息是预设的,包括所述应用程序接口关联的数据源、数据源类型;查询模块,用于依据所述查询变量和所述配置信息构建查询语句,将所述查询语句发送至所述应用程序接口以查询数据。
第三方面,本申请提供一种电子设备,特征在于,包括:处理器和存储器;所述处理器和所述存储器通过总线完成相互间的通信;所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如第一方面中任一项所述的数据查询方法。
第四方面,本申请提供一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序指令,所述计算机程序指令被计算机读取并运行时,执行如第一方面中任一项所述的数据查询方法。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的数据查询方法的流程图;
图2为本申请实施例提供的数据查询装置的示意框图;
图3为本申请实施例提供的电子设备的示意框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
图1为本申请实施例提供的数据查询方法的流程图,如图1所示,所述方法包括步骤110至步骤130:
步骤110,接收查询请求,依据所述查询请求中的查询参数构建查询变量。
接收调用方发送的查询请求,获取查询请求中的查询参数。依据查询参数构建查询变量。调用方就是需要通过API(Application Programming Interface,应用程序接口)来获取数据的用户方,一般为具体的业务系统、应用系统。
示例的,调用方的请求参数封装和传参方式为:get方式,如http://ip:port/url?pageNo=1&pageSize=10&变量名1=变量值&变量名2=变量值&变量名n=变量值;post方式,按json(JavaScript Object Notation, JS对象简谱)格式封装如下的参数格式{"pageNo":1,"pageSize":10,"变量名1":"变量值","变量名2":"变量值","变量名n":"变量值"}。
调用方将请求参数放在请求体中,并根据接口URL(Uniform Resource Locator,统一资源定位器)地址、接口调用说明,发起HTTP(Hypertext Transfer Protocol,超文本传输协议)请求流程。接口调用说明是指接口的请求方法、返回数据解析方法,按照现有的HTTP协议、JSON格式、加解密技术、签名技术,制定的具体要求。
将调用方发送的查询请求中的查询参数解析成key-value查询变量。如,get方式,从请求地址中获取查询参数解析key-value查询变量;post方式则从请求体中解析出json格式查询参数解析为key-value查询变量。
在本申请一个实施例中,所述方法还包括:验证所述查询请求中携带的签名及访问令牌是否正确;若验证结果表示所述签名或所述访问令牌错误,则中断查询。
接收到查询请求后,接收方验证查询请求中携带的签名的合法性,例如,生成一套密钥,密钥包括:公钥(pubKey)、privateKey(私钥),调用方使用私钥及加密算法生成调用签名sign=SM3Encrypt(调用方名称+timestamp +random),调用方和接收方保存生成的密钥。接收方使用公钥获取调用签名中的调用方名称,验证调用方名称是否已经注册,若已经注册,则说明签名合法。及,验证查询请求中携带的accesToken(访问令牌)的合法性。例如,为每一调用方预先生成唯一的访问令牌,接收方收到调用请求后,获取其中携带的访问令牌,若本地存在相同的访问令牌,说明访问令牌合法。
若验证结果表示所述签名或所述访问令牌错误,则验证不通过,中断流程,返回错误码;若验证通过,则继续执行。
上述实施例中,对查询请求中签名及访问令牌进行验证,能够过滤非法的查询请求,保证数据安全。
在本申请一个实施例中,预先设置有调用信息,所述调用信息包括:授权编号、授权密钥、公钥、私钥;所述方法还包括:接收登录请求,所述登录请求中携带所述签名,所述签名通过所述私钥加密所述授权编号和所述授权密钥得到;通过所述公钥解密所述签名,获取所述签名携带的授权编号和授权密钥;验证所述签名携带的授权编号和授权密钥是否与本地预存的所述调用信息中的授权编号和授权密钥相同;若所述签名携带的授权编号和授权密钥与本地预存的所述调用信息中的授权编号和授权密钥相同,生成与授权编号对应的访问令牌。
预先为调用方生成调用信息,所述调用信息包括:授权编号(appKey)、appSecret(授权密钥)、公钥(pubKey)、私钥(privateKey),并且将调用信息与应用程序接口的APIID(Application Programming Interface Identity document,应用程序接口编号)进行绑定。调用信息在调用方和接收方分别进行保存。
调用方发起调用请求之前,首先需要获取访问令牌。示例的,调用方请求接收方如统一网关服务的登录接口,以获取访问令牌(accesToken)。调用方获取调用方本地保存的调用信息中的授权编号、授权密钥,并用SM3国密算法生成调用签名:sign=SM3Encrypt(appKey + timestamp + appSecret + random),按照要求封装登录请求,并发起请求获取accesToken;
统一网关服务接收到登录请求后,使用统一网关服务本地保存的调用信息中的授权编号、授权密钥及SM3算法进行验签,验签通过后,还判断授权编号是否合法。如,统一网关服务通过公钥解密所述签名,如果成功获取到签名携带的授权编号和授权密钥,则验签成功,进一步的验证签名携带的授权编号和授权密钥是否与统一网关服务本地预存的调用信息中的授权编号和授权密钥相同,若不相同,说明授权编号不合法,则中断流程,返回错误码;若相同,说明授权编号合法,则生成一个与授权编号绑定的登录访问令牌,将访问令牌返回给调用方。
上述实施例中,对发出查询请求的调用方进行身份验证,验证成功后生成访问令牌,在调用方的查询请求携带访问令牌中可以证明调用方的身份,维护了查询的安全性。
在申请一个实施例中,所述方法还包括:获取所述查询请求中访问令牌对应的授权编号,所述授权编号是针对调用方预先生成的;获取所述授权编号对应的应用程序接口编号;判断所获取的应用程序接口编号与所述查询请求中携带的应用程序接口编号是否一致。
获取查询请求中的访问令牌,根据访问令牌获取到访问令牌绑定的授权编号,并根据授权编号获取到授权编号绑定的应用程序接口编号,如果获取不到应用程序接口编号,则鉴权不通过;若获取到应用程序接口编号,则继续执行。
上述实施例中,对查询请求中携带的应用程序接口编号的权限进行鉴权验证,保证了查询的安全性。
步骤120,获取所述查询请求所请求的应用程序接口的配置信息,所述配置信息是预设的,包括所述应用程序接口关联的数据源、数据源类型。
示例的,通过查询请求的访问地址中的应用程序接口编号,获取应用程序接口的配置信息,所述配置信息是预设的,包括应用程序接口关联的数据源、数据源类型。
在本申请一个实施例中,所述方法还包括:对应用程序接口关联的数据源及数据源类型进行设置;确认所述数据源是否连接成功;若所述数据源连接成功,将设置的信息保存为所述配置信息。
设置应用程序接口关联的数据源及数据源类型如数据表、视图、自定义SQL(Structured Query Language,结构化查询语言)等。示例的,通过可视化接口配置模块对应用程序接口的基础信息进行配置,在可视化接口配置模块上输入接口名称、接口描述,选择请求方式(post/get)等,可视化接口配置模块依据输入信息进行配置。
通过可视化接口配置模块对接口关联的数据源类型(如数据表、视图、自定义SQL)、数据源进行配置。
若数据源类型为数据表或视图,则选择某个数据库、及数据表或视图作为数据源。若数据源类型为自定义SQL,则选择数据库,并编写SQL语句。
设置完应用程序接口关联的数据源后,然后对数据源进行连接,确认数据源是否能连接成功。
进一步的,通过可视化接口配置模块对接口返回信息进行配置。若数据源类型为数据表或视图,获取数据表或视图的字段,返回该数据源中的全字段示例数据(例如,只需前10条即可),根据字段名称和示例数据,然后选择哪些字段作为返回字段。若数据源类型为自定义SQL,则通过数据库连接器执行自定义SQL,返回结果集字段,从结果集字段中选择哪些字段作为返回字段。
进一步的,通过可视化接口配置模块对接口请求参数进行配置,自定义添加请求参数,并设置数据表或视图字段与请求参数的映射和条件关系。字段与请求参数的映射和条件关系,指生成动态SQL,将字段与查询条件进行拼装的关系。例如,从数据库中查询数据表或视图字段时,将根据此配置对SQL查询条件进行拼装,生成动态SQL。若数据源类型为自定义SQL,则需设置自定义SQL查询条件中的字段与请求参数的映射和条件关系。
可视化接口配置模块配置的信息保存到数据库的接口配置表中,生成配置信息。并且为可视化接口配置模块生成应用程序接口编号作为唯一标识。
可选的,除生成配置信息外,还生成的接口地址、接口调用说明、调用信息等,将生成的接口地址、接口调用说明、调用信息等提供给调用方。调用方依据这些信息即可发起请求。
上述实施例中,预先设置应用程序接口的配置信息,实现对应用程序接口对应数据源的说明,在使用接口时可以依据配置信息成功生成动态SQL,实现数据查询。
步骤130,依据所述查询变量和所述配置信息构建查询语句,将所述查询语句发送至所述应用程序接口以查询数据。
依据配置信息中所指定数据源、数据源类型及查询变量构建查询语句,将构建完成的查询语句发送至应用程序接口,以使应用程序接口执行查询语句来查询数据。示例的,获取配置信息中数据源、数据源类型对应的查询语句构建方法,依据查询语句构建方法及查询变量构建查询语句。
在本申请一个实施例中,所述依据所述查询变量和所述配置信息构建查询语句,包括:获取所述配置信息中的数据源类型;若所述数据源类型为数据表,将所述配置信息中数据表名称、查询条件及查询变量拼接到表查询SQL语句中,生成查询SQL语句;若所述数据源类型为视图,将所述配置信息中视图名称、查询条件及查询变量拼接到视图查询SQL语句中,生成查询SQL语句;若所述数据源类型为自定义SQL,将所述配置信息中查询变量拼装到自定义SQL语句的查询条件中,生成查询SQL语句。
获取得到的配置信息中包括接口关联的数据源类型、数据源,及关联的具体的数据表或视图或自定义SQL,返回数据字段信息,查询条件信息(数据源字段与查询变量的映射和条件关系);
则,可以根据数据源类型,分别执行不同的SQL语句拼装方法:
若数据源类型为数据表,则将数据表名称、查询条件拼接到表查询SQL语句中,并将查询变量拼装到SQL语句的查询条件变量值中,动态生成最终的查询SQL语句。
若数据源类型为视图,则将视图名称、查询条件拼接到视图查询SQL语句中,并将查询变量拼装到SQL语句的查询条件变量值中,动态生成最终的查询SQL语句。
若数据源类型为自定义SQL,则将查询变量拼装到自定义SQL语句的查询条件中作为最终的查询SQL语句。
上述实施例中,依据应用程序接口对应的数据源类型,选择不同的查询SQL语句的生成方式,使得生成的查询语句可以支持多种数据源类型。
在本申请一个实施例中,所述将所述查询语句发送至所述应用程序接口以查询数据,包括:将所述配置信息中数据源连接信息及所述查询语句发送至所述应用程序接口;其中,所述数据源连接信息用于使所述应用程序接口调用数据库连接器,依据所述数据源连接信息切换数据源连接,所述查询语句用于使所述应用程序接口执行所述查询语句,获取所述查询语句对应的查询结果。
应用程序接口调用数据库连接器,依据配置信息中的具体数据源连接信息,动态切换数据源连接,并执行查询语句,获得查询结果。
上述实施例中,通过将配置信息中数据源连接信息发送至应用程序接口,应用程序接口通过数据库连接器切换数据源,可以实现数据源的动态切换。
在本申请一个实施例中,所述接收查询请求,依据所述查询请求中的查询参数构建查询变量,包括:统一网关服务接收所有应用程序接口的所述查询请求,依据所述查询请求中的查询参数构建所述查询变量;并将所述查询变量发送至动态SQL工厂类;所述获取所述查询请求所请求的应用程序接口的配置信息,包括:所述动态SQL工厂类获取所述查询请求所请求的应用程序接口的配置信息;所述依据所述查询变量和所述配置信息构建查询语句,将所述查询语句发送至所述应用程序接口以查询数据,包括:所述动态SQL工厂类依据所述查询变量和所述配置信息构建查询语句,并将所述查询语句发送至所述应用程序接口以查询数据。
可以将接口地址设置为统一网关服务的地址,例如,将接口地址由统一网关服务的URL地址、应用程序接口编号(APIID)拼接而成,如接口地址为:http://ip:port/sjzt_api/APIID,通过地址设置调用方的请求实际上都将到统一网关服务,统一网关服务根据请求中的参数APIID来判断具体按哪个接口配置来处理,例如,统一网关服务会根据URL中的路径参数拦截所有对此类生成接口的请求。然后,统一网关服务根据请求中的参数APIID来判断具体按哪个接口配置来处理。
统一网关服务,可以是一个程序模块,用于实现了请求统一接收,登录认证、请求合法性验证、请求授权验证、请求参数解析、请求动态转发等功能。统一网关服务按照现有的HTTP协议、JSON格式、加解密技术、签名技术实现HTTP请求的请求验签、请求解密、请求参数格式解析、返回数据格式封装、返回加密、返回签名。在使用统一网关服务的实施例中,统一网关服务实现请求验签等功能的具体处理方法也约定了接口的请求方法、返回数据解析方法。根据统一网关服务的请求处理方法和要求,即可形成接口调用说明。
通过统一网关服务将key-value查询变量及APIID转发到动态SQL工厂类。动态SQL工厂类是一个软件模块,一个具体的实施例中其是多个Java程序类。动态SQL工厂类用于依据查询变量和配置信息构建查询语句,及依据查询语句查询数据。
动态SQL工厂类获取接口的配置信息,配置信息中包括接口关联的数据源类型、数据源,及关联的具体的数据表或视图或自定义SQL,返回数据字段信息,查询条件信息如数据源字段与查询变量的映射和条件关系。
动态SQL工厂类根据配置信息分别执行不同的SQL语句拼装方法。如,若数据源类型为数据表,则将数据表名称、查询条件拼接到表查询SQL语句中,并将查询变量拼装到SQL语句的查询条件变量值中,动态生成最终的查询SQL语句。
动态SQL工厂类,调用数据库连接器(JDBC),根据配置信息中的具体数据源连接信息,动态切换数据源连接,并执行查询SQL语句,将SQL查询结果集返回给动态SQL工厂类。
动态SQL工厂类将查询结果集返回给统一网关服务,统一网关服务根据返回数据json格式模板,将结果集封装为json对象data,返回数据json格式模板可以依据需要进行设置,如 [{"数据字段1":"字段值","数据字段2":"字段值","数据字段n":"字段值"},{"数据字段1":"字段值","数据字段2":"字段值","数据字段n":"字段值"},...]。
然后采用授权编号、授权密钥及SM3算法生成签名,采用公钥及SM2算法对返回数据data进行加密,然后将签名、data密文及状态信息、状态码封装成json串返回给调用方。状态信息及状态码示例的格式为: {"message":"###","code":200,"success":"true","timestamp":"1668687246379","sign":"#############","data":"##################"}。
上述实施例中,使用统一网关实现对查询请求的接收,使用动态SQL工厂类实现查询语句的构建,将统一网关服务与动态SQL执行进行了分离,使得对查询请求的处理和转发、对SQL的动态拼装和执行进行解耦,两个服务可以单独执行、并行执行,不占用同一个计算机线程,提高了执行效率。
进一步的,将统一网关服务单独拆分出来成为一个独立服务,服务就可以单独部署,单独部署情况可以采用集群部署、负载均衡技术等进行实现,从而支持统一网关服务的集群部署、负载均衡,可提高请求处理性能,同样的,可以支持动态SQL工厂类的集群部署、负载均衡,提高请求处理性能。
上述数据查询方法,获取查询请求所请求的应用程序接口的配置信息,依据配置信息及查询请求中的查询参数构建查询语句,通过在配置信息中的设置数据源类型进行查询语句的构建,可以使得查询方法支持多种数据源类型,并且支持数据源的动态配置。
本申请的数据查询方法可以配置数据表、数据库视图、自定义SQL作为应用程序接口的数据源,通过自定义SQL还可以支持多表联合查询作为接口的返回数据。
图2为本申请实施例中提供一种数据查询装置200,如图2所示,所述数据查询装置200包括:
接收模块210,用于接收查询请求,依据所述查询请求中的查询参数构建查询变量;
获取模块220,用于获取所述查询请求对应的应用程序接口的配置信息,所述配置信息是预设的,包括所述应用程序接口关联的数据源、数据源类型;
查询模块230,用于依据所述查询变量和所述配置信息构建查询语句,将所述查询语句发送至应用程序接口以查询数据。
图3为本申请实施例中提供一种电子设备300,如图3所示,所述电子设备包括:处理器310和存储器320;所述处理器和所述存储器通过总线完成相互间的通信;所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如上述实施例任一项所述的数据查询方法。
本申请实施例中还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序指令,所述计算机程序指令被计算机读取并运行时,执行如上述实施例中任一项所述的数据查询方法。
在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
再者,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
需要说明的是,功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (9)

1.一种数据查询方法,其特征在于,所述方法包括:
接收查询请求,依据所述查询请求中的查询参数构建查询变量,其中,所述查询参数用于指定需要查询的数据;
获取所述查询请求所请求的应用程序接口的配置信息,所述配置信息是预设的,包括所述应用程序接口关联的数据源、数据源类型;
依据所述查询变量和所述配置信息构建查询语句,将所述查询语句发送至所述应用程序接口以查询数据;
其中,所述方法还包括:
验证所述查询请求中携带的签名及访问令牌是否正确;
若验证结果表示所述签名或所述访问令牌错误,则中断查询;
其中,预先设置有调用信息,所述调用信息包括:授权编号、授权密钥、公钥、私钥,所述方法还包括:
接收登录请求,所述登录请求中携带所述签名,所述签名通过所述私钥加密所述授权编号和所述授权密钥得到;
通过所述公钥解密所述签名,获取所述签名携带的授权编号和授权密钥;
验证所述签名携带的授权编号和授权密钥是否与本地预存的所述调用信息中的授权编号和授权密钥相同;
若所述签名携带的授权编号和授权密钥与本地预存的所述调用信息中的授权编号和授权密钥相同,生成与授权编号对应的访问令牌。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取所述查询请求中访问令牌对应的授权编号,所述授权编号是针对调用方预先生成的;
获取所述授权编号对应的应用程序接口编号;
判断所获取的应用程序接口编号与所述查询请求中携带的应用程序接口编号是否一致。
3.根据权利要求1所述的方法,其特征在于,所述依据所述查询变量和所述配置信息构建查询语句,包括:
获取所述配置信息中的数据源类型;
若所述数据源类型为数据表,将所述配置信息中数据表名称、查询条件及查询变量拼接到表查询SQL语句中,生成查询SQL语句;
若所述数据源类型为视图,将所述配置信息中视图名称、查询条件及查询变量拼接到视图查询SQL语句中,生成查询SQL语句;
若所述数据源类型为自定义SQL,将所述配置信息中查询变量拼装到自定义SQL语句的查询条件中,生成查询SQL语句。
4.根据权利要求1所述的方法,其特征在于,所述将所述查询语句发送至所述应用程序接口以查询数据,包括:
将所述配置信息中数据源连接信息及所述查询语句发送至所述应用程序接口;
其中,所述数据源连接信息用于使所述应用程序接口调用数据库连接器,依据所述数据源连接信息切换数据源连接,所述查询语句用于使所述应用程序接口执行所述查询语句,获取所述查询语句对应的查询结果。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
对应用程序接口关联的数据源及数据源类型进行设置;
确认所述数据源是否连接成功;
若所述数据源连接成功,将设置的信息保存为所述配置信息。
6.根据权利要求1至5中任一项所述的方法,其特征在于,所述接收查询请求,依据所述查询请求中的查询参数构建查询变量,包括:
统一网关服务接收所有应用程序接口的所述查询请求,依据所述查询请求中的查询参数构建所述查询变量;并将所述查询变量发送至动态SQL工厂类;
所述获取所述查询请求所请求的应用程序接口的配置信息,包括:
所述动态SQL工厂类获取所述查询请求所请求的应用程序接口的配置信息;
所述依据所述查询变量和所述配置信息构建查询语句,将所述查询语句发送至所述应用程序接口以查询数据,包括:
所述动态SQL工厂类依据所述查询变量和所述配置信息构建查询语句,并将所述查询语句发送至所述应用程序接口以查询数据。
7.一种数据查询装置,其特征在于,所述装置包括:
接收模块,用于接收查询请求,依据所述查询请求中的查询参数构建查询变量,其中,所述查询参数用于指定需要查询的数据;
获取模块,用于获取所述查询请求对应的应用程序接口的配置信息,所述配置信息是预设的,包括所述应用程序接口关联的数据源、数据源类型;
查询模块,用于依据所述查询变量和所述配置信息构建查询语句,将所述查询语句发送至应用程序接口以查询数据;
其中,所述装置还包括验证模块,所述验证模块,用于验证所述查询请求中携带的签名及访问令牌是否正确;若验证结果表示所述签名或所述访问令牌错误,则中断查询;
其中,预先设置有调用信息,所述调用信息包括:授权编号、授权密钥、公钥、私钥,所述验证模块,具体用于接收登录请求,所述登录请求中携带所述签名,所述签名通过所述私钥加密所述授权编号和所述授权密钥得到;通过所述公钥解密所述签名,获取所述签名携带的授权编号和授权密钥;验证所述签名携带的授权编号和授权密钥是否与本地预存的所述调用信息中的授权编号和授权密钥相同;若所述签名携带的授权编号和授权密钥与本地预存的所述调用信息中的授权编号和授权密钥相同,生成与授权编号对应的访问令牌。
8.一种电子设备,特征在于,包括:处理器和存储器;所述处理器和所述存储器通过总线完成相互间的通信;所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如权利要求1-6任一项所述的数据查询方法。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序指令,所述计算机程序指令被计算机读取并运行时,执行如权利要求1-6任一项所述的数据查询方法。
CN202311630706.1A 2023-12-01 2023-12-01 数据查询方法、装置、设备及存储介质 Active CN117331964B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311630706.1A CN117331964B (zh) 2023-12-01 2023-12-01 数据查询方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311630706.1A CN117331964B (zh) 2023-12-01 2023-12-01 数据查询方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN117331964A CN117331964A (zh) 2024-01-02
CN117331964B true CN117331964B (zh) 2024-02-27

Family

ID=89279752

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311630706.1A Active CN117331964B (zh) 2023-12-01 2023-12-01 数据查询方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN117331964B (zh)

Citations (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1770586A1 (en) * 2005-09-29 2007-04-04 Research In Motion Limited Account management in a system and method for providing code signing services
CN106302502A (zh) * 2016-04-03 2017-01-04 北京动石科技有限公司 一种安全访问认证处理方法、用户终端和服务端
WO2017096399A1 (en) * 2015-12-04 2017-06-08 Visa International Service Association Secure token distribution
CN107798026A (zh) * 2016-09-05 2018-03-13 北京京东尚科信息技术有限公司 数据查询方法和装置
CN107918731A (zh) * 2016-10-11 2018-04-17 百度在线网络技术(北京)有限公司 用于控制对开放接口进行访问的权限的方法和装置
JP2018093407A (ja) * 2016-12-05 2018-06-14 キヤノン株式会社 システム、リソースサーバ、システムの制御方法およびプログラム
CN109428891A (zh) * 2017-08-31 2019-03-05 佳能株式会社 权限转移系统及其控制方法和客户端
CN109472151A (zh) * 2018-10-31 2019-03-15 金蝶软件(中国)有限公司 一种数据访问的方法及服务器
CN109710663A (zh) * 2018-12-29 2019-05-03 北京神舟航天软件技术有限公司 一种数据统计图表生成方法
CN110875925A (zh) * 2018-08-30 2020-03-10 佳能株式会社 信息处理装置、授权系统及验证方法
CN111327629A (zh) * 2020-03-04 2020-06-23 广州柏视医疗科技有限公司 身份验证方法、客户端和服务端
CN111737225A (zh) * 2020-05-25 2020-10-02 贵州华泰智远大数据服务有限公司 一种基于分词技术的数据标签数据库建立方法
CN111831997A (zh) * 2020-06-18 2020-10-27 华东师范大学 一种客户端与数据库之间建立可信关系的方法
CN112328415A (zh) * 2020-11-27 2021-02-05 杭州安恒信息技术股份有限公司 接口调用方法、装置、计算机设备和可读存储介质
JP2021170228A (ja) * 2020-04-15 2021-10-28 大日本印刷株式会社 認可に基づくリソースアクセス制御システム、セキュアなコンポーネント、デバイス及び認可に基づくリソースアクセス制御方法
CN113641700A (zh) * 2021-08-30 2021-11-12 北京沃东天骏信息技术有限公司 一种基于Spring boot框架的数据处理方法及装置
CN114238878A (zh) * 2021-12-20 2022-03-25 上海朝阳永续信息技术股份有限公司 一种可溯源的数据授权传递控制方法与系统
CN114793243A (zh) * 2021-01-26 2022-07-26 Sap欧洲公司 自包含格式的一次性使用授权码
CN115459929A (zh) * 2022-09-06 2022-12-09 中国建设银行股份有限公司 安全验证方法、装置、电子设备、系统、介质和产品
CN115622747A (zh) * 2022-09-22 2023-01-17 中国建设银行股份有限公司 Api授权认证处理方法、装置、电子设备和存储介质
CN116226166A (zh) * 2023-02-16 2023-06-06 平安科技(深圳)有限公司 基于数据源的数据查询方法及系统
CN116340355A (zh) * 2023-03-17 2023-06-27 中国建设银行股份有限公司 一种数据查询的方法和装置
CN116737127A (zh) * 2023-05-29 2023-09-12 北京神舟航天软件技术股份有限公司 低代码开发方法、装置、设备和存储介质
WO2023172569A1 (en) * 2022-03-07 2023-09-14 Phoenix Technologies Emea Limited Providing bios features in a pre-boot environment for a client computer system
CN116881275A (zh) * 2023-06-02 2023-10-13 中国联合网络通信集团有限公司 数据库查询方法、装置及存储介质
CN116956311A (zh) * 2022-04-15 2023-10-27 华为技术有限公司 异步授权方法、系统、电子设备及计算机可读存储介质
CN116991872A (zh) * 2023-08-01 2023-11-03 招商银行股份有限公司 数据查询方法、设备及计算机可读存储介质
CN117118640A (zh) * 2022-05-17 2023-11-24 腾讯科技(深圳)有限公司 一种数据处理方法、装置、计算机设备以及可读存储介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050149759A1 (en) * 2000-06-15 2005-07-07 Movemoney, Inc. User/product authentication and piracy management system
US11552807B2 (en) * 2017-09-18 2023-01-10 Huawei Technologies Co., Ltd. Data processing method and apparatus

Patent Citations (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1770586A1 (en) * 2005-09-29 2007-04-04 Research In Motion Limited Account management in a system and method for providing code signing services
WO2017096399A1 (en) * 2015-12-04 2017-06-08 Visa International Service Association Secure token distribution
CN106302502A (zh) * 2016-04-03 2017-01-04 北京动石科技有限公司 一种安全访问认证处理方法、用户终端和服务端
CN107798026A (zh) * 2016-09-05 2018-03-13 北京京东尚科信息技术有限公司 数据查询方法和装置
CN107918731A (zh) * 2016-10-11 2018-04-17 百度在线网络技术(北京)有限公司 用于控制对开放接口进行访问的权限的方法和装置
JP2018093407A (ja) * 2016-12-05 2018-06-14 キヤノン株式会社 システム、リソースサーバ、システムの制御方法およびプログラム
CN109428891A (zh) * 2017-08-31 2019-03-05 佳能株式会社 权限转移系统及其控制方法和客户端
CN110875925A (zh) * 2018-08-30 2020-03-10 佳能株式会社 信息处理装置、授权系统及验证方法
CN109472151A (zh) * 2018-10-31 2019-03-15 金蝶软件(中国)有限公司 一种数据访问的方法及服务器
CN109710663A (zh) * 2018-12-29 2019-05-03 北京神舟航天软件技术有限公司 一种数据统计图表生成方法
CN111327629A (zh) * 2020-03-04 2020-06-23 广州柏视医疗科技有限公司 身份验证方法、客户端和服务端
JP2021170228A (ja) * 2020-04-15 2021-10-28 大日本印刷株式会社 認可に基づくリソースアクセス制御システム、セキュアなコンポーネント、デバイス及び認可に基づくリソースアクセス制御方法
CN111737225A (zh) * 2020-05-25 2020-10-02 贵州华泰智远大数据服务有限公司 一种基于分词技术的数据标签数据库建立方法
CN111831997A (zh) * 2020-06-18 2020-10-27 华东师范大学 一种客户端与数据库之间建立可信关系的方法
CN112328415A (zh) * 2020-11-27 2021-02-05 杭州安恒信息技术股份有限公司 接口调用方法、装置、计算机设备和可读存储介质
CN114793243A (zh) * 2021-01-26 2022-07-26 Sap欧洲公司 自包含格式的一次性使用授权码
EP4033385A1 (en) * 2021-01-26 2022-07-27 Sap Se Single-use authorization codes in self-contained format
CN113641700A (zh) * 2021-08-30 2021-11-12 北京沃东天骏信息技术有限公司 一种基于Spring boot框架的数据处理方法及装置
CN114238878A (zh) * 2021-12-20 2022-03-25 上海朝阳永续信息技术股份有限公司 一种可溯源的数据授权传递控制方法与系统
WO2023172569A1 (en) * 2022-03-07 2023-09-14 Phoenix Technologies Emea Limited Providing bios features in a pre-boot environment for a client computer system
CN116956311A (zh) * 2022-04-15 2023-10-27 华为技术有限公司 异步授权方法、系统、电子设备及计算机可读存储介质
CN117118640A (zh) * 2022-05-17 2023-11-24 腾讯科技(深圳)有限公司 一种数据处理方法、装置、计算机设备以及可读存储介质
CN115459929A (zh) * 2022-09-06 2022-12-09 中国建设银行股份有限公司 安全验证方法、装置、电子设备、系统、介质和产品
CN115622747A (zh) * 2022-09-22 2023-01-17 中国建设银行股份有限公司 Api授权认证处理方法、装置、电子设备和存储介质
CN116226166A (zh) * 2023-02-16 2023-06-06 平安科技(深圳)有限公司 基于数据源的数据查询方法及系统
CN116340355A (zh) * 2023-03-17 2023-06-27 中国建设银行股份有限公司 一种数据查询的方法和装置
CN116737127A (zh) * 2023-05-29 2023-09-12 北京神舟航天软件技术股份有限公司 低代码开发方法、装置、设备和存储介质
CN116881275A (zh) * 2023-06-02 2023-10-13 中国联合网络通信集团有限公司 数据库查询方法、装置及存储介质
CN116991872A (zh) * 2023-08-01 2023-11-03 招商银行股份有限公司 数据查询方法、设备及计算机可读存储介质

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Dynamic multi-client searchable symmetric encryption with support for boolean queries;Leilei Du;《Information Sciences》;第506卷;234-257页 *
J2EE架构下SQL处理工厂设计;陈春蓉;倪子伟;;广州大学学报(自然科学版)(第02期);46-49页 *
中国金融认证中心PKI关键技术研究;李晓峰;《中国博士学位论文全文数据库 信息科技》;I138-9 *

Also Published As

Publication number Publication date
CN117331964A (zh) 2024-01-02

Similar Documents

Publication Publication Date Title
EP3688634B1 (en) System and method for implementing a resolver service for decentralized identifiers
US8693690B2 (en) Organizing an extensible table for storing cryptographic objects
US11706036B2 (en) Systems and methods for preserving privacy of a registrant in a domain name system (“DNS”)
US8446911B2 (en) System and method for managing communication for component applications
US7853674B2 (en) System and method for provisioning component applications
JP4832822B2 (ja) データ処理システム、方法およびコンピュータ・プログラム(連合ユーザ・ライフサイクル管理用の信頼インフラストラクチャ・サポートを可能にする方法およびシステム)
US8819253B2 (en) Network message generation for automated authentication
KR102660475B1 (ko) 전자 신원확인 및 인증 서비스(eidas)를 위한 전자 계약을 인증하는 플랫폼 및 방법
US7117366B2 (en) Public key based authentication method for transaction delegation in service-based computing environments
US20120131354A1 (en) Method and system for provision of cryptographic services
US20120079069A1 (en) File Uploading Realization Method and System for WEB Application
CN103220259A (zh) Oauth API的使用、调用方法、设备及系统
JP5895782B2 (ja) 通信システム、通信装置、通信方法、および、通信プログラム
KR101109371B1 (ko) 이름 분해를 위한 시스템 및 방법
CN111444551A (zh) 账户的注册与登录方法、装置、电子设备及可读存储介质
EP1684482B1 (en) System and method for managing communication for component applications
CN115622747A (zh) Api授权认证处理方法、装置、电子设备和存储介质
JP2012181662A (ja) アカウント情報連携システム
CN112261059B (zh) 一种基于java网关技术平台通用性的接口方法及系统
CN113645226A (zh) 一种基于网关层的数据处理方法、装置、设备及存储介质
JP6783527B2 (ja) 電子鍵再登録システム、電子鍵再登録方法およびプログラム
CN105740357B (zh) 一种提供信息的方法和装置
KR102462411B1 (ko) 전자 신원확인 및 인증 서비스(eidas)를 위한 전자 공고를 인증하는 플랫폼 및 방법
CN117331964B (zh) 数据查询方法、装置、设备及存储介质
JP2011145754A (ja) シングルサインオンシステムと方法、認証サーバ、ユーザ端末、サービスサーバ、プログラム

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
GR01 Patent grant
GR01 Patent grant