CN106445562A - 基于元数据的OpenAPI实现方法及OpenAPI实现装置 - Google Patents

基于元数据的OpenAPI实现方法及OpenAPI实现装置 Download PDF

Info

Publication number
CN106445562A
CN106445562A CN201611019663.3A CN201611019663A CN106445562A CN 106445562 A CN106445562 A CN 106445562A CN 201611019663 A CN201611019663 A CN 201611019663A CN 106445562 A CN106445562 A CN 106445562A
Authority
CN
China
Prior art keywords
business datum
api
openapi
metadata
class
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.)
Granted
Application number
CN201611019663.3A
Other languages
English (en)
Other versions
CN106445562B (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.)
Yonyou Network Technology Co Ltd
Original Assignee
Yonyou Network 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 Yonyou Network Technology Co Ltd filed Critical Yonyou Network Technology Co Ltd
Priority to CN201611019663.3A priority Critical patent/CN106445562B/zh
Publication of CN106445562A publication Critical patent/CN106445562A/zh
Application granted granted Critical
Publication of CN106445562B publication Critical patent/CN106445562B/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/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • G06F8/22Procedural

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Stored Programmes (AREA)

Abstract

本发明提供了一种基于元数据的OpenAPI实现方法及OpenAPI实现装置,其中,基于元数据的OpenAPI实现方法包括:基于对业务数据进行统一描述的元数据生成公共API;接收调用方发送的针对业务数据的API调用请求;根据所述公共API和所述API调用请求查询相应的业务数据,并响应所述调用请求。本发明的技术方案可以根据公共API和调用方发送的API调用请求来查询得到相应的业务数据,无需针对每个业务数据重新开发OpenAPI,极大地降低了OpenAPI的开发工作量和实现难度,有利于满足企业对OpenAPI的需求。

Description

基于元数据的OpenAPI实现方法及OpenAPI实现装置
技术领域
本发明涉及互联网技术领域,具体而言,涉及一种基于元数据的OpenAPI实现方法和一种基于元数据的OpenAPI实现装置。
背景技术
ERP(Enterprise Resource Planning,企业资源计划)产品在互联网化转型的过程中,需要将原有的功能作为OpenAPI开放出来,以向外部系统提供API(ApplicationProgramming Interface,应用编程接口)服务。
目前的普遍做法是,将ERP产品中的每个业务模块的原有功能重新开发为OpenAPI,由于ERP产品业务复杂、模块繁多,因此将每个业务模块都重新开发为OpenAPI的实现难度非常大且十分耗时,无法满足企业对OpenAPI的需求。
发明内容
本发明正是基于上述技术问题至少之一,提出了一种新的基于元数据的OpenAPI实现方案,极大地降低了OpenAPI的开发工作量和实现难度,有利于满足企业对OpenAPI的需求。
有鉴于此,根据本发明的第一方面,提出了一种基于元数据的OpenAPI实现方法,包括:基于对业务数据进行统一描述的元数据生成公共API;接收调用方发送的针对业务数据的API调用请求;根据所述公共API和所述API调用请求查询相应的业务数据,并响应所述调用请求。
在该技术方案中,由于业务数据通常都是采用类似的元数据形式,有着类似的数据结构,因此通过基于对业务数据进行统一描述的元数据生成公共API,使得能够从元数据的角度来实现公共API,进而根据公共API和调用方发送的API调用请求来查询得到相应的业务数据,由于无需针对每个业务数据重新开发OpenAPI,因此极大地降低了OpenAPI的开发工作量和实现难度,有利于满足企业对OpenAPI的需求。
在本发明的一个实施例中,在所述API调用请求中包含有需要访问的业务数据的类名和查询条件的情况下,根据所述公共API和所述API调用请求查询相应的业务数据的步骤,具体包括:
根据所述业务数据的类名和所述公共API确定所述需要访问的业务数据的类和相应的资源路径;
根据所述需要访问的业务数据的类和相应的资源路径,以及所述查询条件,查询得到相应的业务数据。
在该实施例中,由于ERP系统中所有的业务数据都是按照元数据描述的规则存储的,因此在知晓业务数据的类名之后,可以根据公共API来获取与之相关的类和资源路径,进而可以根据API调用请求中包含的查询条件,以及需要访问的业务数据的类和相应的资源路径来查询得到相应的业务数据。
在本发明的另一个实施例中,根据所述公共API和所述API调用请求查询相应的业务数据的步骤,具体包括:
根据所述公共API,以及每种业务数据对应的类名和资源路径生成对应于所述每种业务数据的查询API;
在所述API调用请求是针对指定业务数据的API调用请求的情况下,根据所述API调用请求中包含的针对所述指定业务数据的查询条件,以及所述指定业务数据对应的查询API,查询得到相应的业务数据。
在该实施例中,由于公共API是通用的API,因此通过根据公共API,以及每种业务数据对应的类名和资源路径生成与每种业务数据对应的查询API,使得能够基于公共API来快速的生成并发布每种业务数据对应的OpenAPI,降低了OpenAPI的开发工作量。同时,由于是基于公共API来生成针对每种业务数据的查询API,因此API调用请求中仅需要包含针对指定业务数据的查询条件即可,进而可以根据指定业务数据对应的查询API来查询得到相应的业务数据。
进一步地,根据所述API调用请求中包含的针对所述指定业务数据的查询条件,以及所述指定业务数据对应的查询API,查询得到相应的业务数据的步骤,具体包括:
根据所述指定业务数据对应的查询API,确定所述指定业务数据的类和相应的资源路径;根据所述指定业务数据的类和相应的资源路径,以及针对所述指定业务数据的查询条件,查询得到相应的业务数据。
在该技术方案中,由于指定业务数据对应的查询API是根据公共API,以及该业务数据对应的类名和资源路径生成的,因此可以根据指定业务数据对应的查询API来确定该业务数据的类和相应的资源路径,进而可以基于确定的业务数据的类和相应的资源路径,以及API调用请求中包含的查询条件来查询得到相应的业务数据。
在上述任一技术方案中,优选地,所述的基于元数据的OpenAPI实现方法还包括:
配置用于对业务数据的类进行访问控制的黑名单和/或白名单,所述白名单包含有允许基于所述公共API访问的业务数据的类名,所述黑名单包含有不允许基于所述公共API访问的业务数据的类名;
根据所述黑名单和/或白名单,以及所述公共API和所述API调用请求查询相应的业务数据。
在该技术方案中,通过配置对业务数据的类进行访问控制的黑名单和/或白名单,以根据配置的黑名单和/或白名单,以及公共API和API调用请求查询相应的业务数据,使得能够根据需求灵活设置禁止访问的类名和允许访问的类名,以提高数据的安全性。
根据本发明的第二方面,还提出了一种基于元数据的OpenAPI实现装置,包括:第一生成单元,用于基于对业务数据进行统一描述的元数据生成公共API;接收单元,用于接收调用方发送的针对业务数据的API调用请求;处理单元,用于根据所述公共API和所述API调用请求查询相应的业务数据,并响应所述调用请求。
在该技术方案中,由于业务数据通常都是采用类似的元数据形式,有着类似的数据结构,因此通过基于对业务数据进行统一描述的元数据生成公共API,使得能够从元数据的角度来实现公共API,进而根据公共API和调用方发送的API调用请求来查询得到相应的业务数据,由于无需针对每个业务数据重新开发OpenAPI,因此极大地降低了OpenAPI的开发工作量和实现难度,有利于满足企业对OpenAPI的需求。
在本发明的一个实施例中,在所述API调用请求中包含有需要访问的业务数据的类名和查询条件的情况下,所述处理单元包括:确定单元,用于根据所述业务数据的类名和所述公共API确定所述需要访问的业务数据的类和相应的资源路径;第一查询单元,用于根据所述需要访问的业务数据的类和相应的资源路径,以及所述查询条件,查询得到相应的业务数据。
在该实施例中,由于ERP系统中所有的业务数据都是按照元数据描述的规则存储的,因此在知晓业务数据的类名之后,可以根据公共API来获取与之相关的类和资源路径,进而可以根据API调用请求中包含的查询条件,以及需要访问的业务数据的类和相应的资源路径来查询得到相应的业务数据。
在本发明的另一个实施例中,所述处理单元包括:第二生成单元,用于根据所述公共API,以及每种业务数据对应的类名和资源路径生成对应于所述每种业务数据的查询API;第二查询单元,用于在所述API调用请求是针对指定业务数据的API调用请求的情况下,根据所述API调用请求中包含的针对所述指定业务数据的查询条件,以及所述指定业务数据对应的查询API,查询得到相应的业务数据。
在该实施例中,由于公共API是通用的API,因此通过根据公共API,以及每种业务数据对应的类名和资源路径生成与每种业务数据对应的查询API,使得能够基于公共API来快速的生成并发布每种业务数据对应的OpenAPI,降低了OpenAPI的开发工作量。同时,由于是基于公共API来生成针对每种业务数据的查询API,因此API调用请求中仅需要包含针对指定业务数据的查询条件即可,进而可以根据指定业务数据对应的查询API来查询得到相应的业务数据。
进一步地,所述第二查询单元具体用于:根据所述指定业务数据对应的查询API,确定所述指定业务数据的类和相应的资源路径;根据所述指定业务数据的类和相应的资源路径,以及针对所述指定业务数据的查询条件,查询得到相应的业务数据。
在该技术方案中,由于指定业务数据对应的查询API是根据公共API,以及该业务数据对应的类名和资源路径生成的,因此可以根据指定业务数据对应的查询API来确定该业务数据的类和相应的资源路径,进而可以基于确定的业务数据的类和相应的资源路径,以及API调用请求中包含的查询条件来查询得到相应的业务数据。
在上述任一技术方案中,优选地,所述的基于元数据的OpenAPI实现装置还包括:配置单元,配置用于对业务数据的类进行访问控制的黑名单和/或白名单,所述白名单包含有允许基于所述公共API访问的业务数据的类名,所述黑名单包含有不允许基于所述公共API访问的业务数据的类名;所述处理单元还用于,根据所述黑名单和/或白名单,以及所述公共API和所述API调用请求查询相应的业务数据。
在该技术方案中,通过配置对业务数据的类进行访问控制的黑名单和/或白名单,以根据配置的黑名单和/或白名单,以及公共API和API调用请求查询相应的业务数据,使得能够根据需求灵活设置禁止访问的类名和允许访问的类名,以提高数据的安全性。
通过以上技术方案,可以根据公共API和调用方发送的API调用请求来查询得到相应的业务数据,无需针对每个业务数据重新开发OpenAPI,极大地降低了OpenAPI的开发工作量和实现难度,有利于满足企业对OpenAPI的需求。
附图说明
图1示出了根据本发明的实施例的基于元数据的OpenAPI实现方法的流程示意图;
图2示出了根据本发明的第一个实施例的基于元数据的OpenAPI实现装置的结构示意图;
图3示出了根据本发明的实施例的处理单元的第一种内部结构示意图;
图4示出了根据本发明的实施例的处理单元的第二种内部结构示意图;
图5示出了根据本发明的第二个实施例的基于元数据的OpenAPI实现装置的结构示意图;
图6示出了根据本发明的实施例的基于元数据的OpenAPI的整体实现原理示意图;
图7示出了根据本发明的实施例的网关适配器和ACC组件的处理流程示意图。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明的保护范围并不受下面公开的具体实施例的限制。
图1示出了根据本发明的实施例的基于元数据的OpenAPI实现方法的流程示意图。
如图1所示,根据本发明的实施例的基于元数据的OpenAPI实现方法,包括:
步骤S10,基于对业务数据进行统一描述的元数据生成公共API。
步骤S12,接收调用方发送的针对业务数据的API调用请求。
步骤S14,根据所述公共API和所述API调用请求查询相应的业务数据,并响应所述调用请求。
在图1所示的技术方案中,由于业务数据通常都是采用类似的元数据形式,有着类似的数据结构,因此通过基于对业务数据进行统一描述的元数据生成公共API,使得能够从元数据的角度来实现公共API,进而根据公共API和调用方发送的API调用请求来查询得到相应的业务数据,由于无需针对每个业务数据重新开发OpenAPI,因此极大地降低了OpenAPI的开发工作量和实现难度,有利于满足企业对OpenAPI的需求。
针对上述步骤S14,本发明具体提出了如下两种实现方式:
方式一:
在API调用请求中包含有需要访问的业务数据的类名和查询条件的情况下,步骤S14具体包括:
根据所述业务数据的类名和所述公共API确定所述需要访问的业务数据的类和相应的资源路径;
根据所述需要访问的业务数据的类和相应的资源路径,以及所述查询条件,查询得到相应的业务数据。
具体来说,由于ERP系统中所有的业务数据都是按照元数据描述的规则存储的,因此在知晓业务数据的类名之后,可以根据公共API来获取与之相关的类和资源路径,进而可以根据API调用请求中包含的查询条件,以及需要访问的业务数据的类和相应的资源路径来查询得到相应的业务数据。
方式二:
步骤S14具体包括:
根据所述公共API,以及每种业务数据对应的类名和资源路径生成对应于所述每种业务数据的查询API;
在所述API调用请求是针对指定业务数据的API调用请求的情况下,根据所述API调用请求中包含的针对所述指定业务数据的查询条件,以及所述指定业务数据对应的查询API,查询得到相应的业务数据。
具体来说,由于公共API是通用的API,因此通过根据公共API,以及每种业务数据对应的类名和资源路径生成与每种业务数据对应的查询API,使得能够基于公共API来快速的生成并发布每种业务数据对应的OpenAPI,降低了OpenAPI的开发工作量。同时,由于是基于公共API来生成针对每种业务数据的查询API,因此API调用请求中仅需要包含针对指定业务数据的查询条件即可,进而可以根据指定业务数据对应的查询API来查询得到相应的业务数据。
在方式二中,进一步地,根据所述API调用请求中包含的针对所述指定业务数据的查询条件,以及所述指定业务数据对应的查询API,查询得到相应的业务数据的步骤,具体包括:
根据所述指定业务数据对应的查询API,确定所述指定业务数据的类和相应的资源路径;根据所述指定业务数据的类和相应的资源路径,以及针对所述指定业务数据的查询条件,查询得到相应的业务数据。
在该技术方案中,由于指定业务数据对应的查询API是根据公共API,以及该业务数据对应的类名和资源路径生成的,因此可以根据指定业务数据对应的查询API来确定该业务数据的类和相应的资源路径,进而可以基于确定的业务数据的类和相应的资源路径,以及API调用请求中包含的查询条件来查询得到相应的业务数据。
在上述任一技术方案中,优选地,所述的基于元数据的OpenAPI实现方法还包括:
配置用于对业务数据的类进行访问控制的黑名单和/或白名单,所述白名单包含有允许基于所述公共API访问的业务数据的类名,所述黑名单包含有不允许基于所述公共API访问的业务数据的类名;
根据所述黑名单和/或白名单,以及所述公共API和所述API调用请求查询相应的业务数据。
在该技术方案中,通过配置对业务数据的类进行访问控制的黑名单和/或白名单,以根据配置的黑名单和/或白名单,以及公共API和API调用请求查询相应的业务数据,使得能够根据需求灵活设置禁止访问的类名和允许访问的类名,以提高数据的安全性。
图2示出了根据本发明的第一个实施例的基于元数据的OpenAPI实现装置的结构示意图。
如图2所示,根据本发明的第一个实施例的基于元数据的OpenAPI实现装置200,包括:第一生成单元202、接收单元204和处理单元206。
其中,第一生成单元202用于基于对业务数据进行统一描述的元数据生成公共API;接收单元204用于接收调用方发送的针对业务数据的API调用请求;处理单元206用于根据所述公共API和所述API调用请求查询相应的业务数据,并响应所述调用请求。
在该技术方案中,由于业务数据通常都是采用类似的元数据形式,有着类似的数据结构,因此通过基于对业务数据进行统一描述的元数据生成公共API,使得能够从元数据的角度来实现公共API,进而根据公共API和调用方发送的API调用请求来查询得到相应的业务数据,由于无需针对每个业务数据重新开发OpenAPI,因此极大地降低了OpenAPI的开发工作量和实现难度,有利于满足企业对OpenAPI的需求。
其中,处理单元206具体有如下两种内部结构:
实施例一:
在API调用请求中包含有需要访问的业务数据的类名和查询条件的情况下,如图3所示,所述处理单元206包括:确定单元2062和第一查询单元2064。
其中,确定单元2062用于根据所述业务数据的类名和所述公共API确定所述需要访问的业务数据的类和相应的资源路径;第一查询单元2064用于根据所述需要访问的业务数据的类和相应的资源路径,以及所述查询条件,查询得到相应的业务数据。
在该实施例中,由于ERP系统中所有的业务数据都是按照元数据描述的规则存储的,因此在知晓业务数据的类名之后,可以根据公共API来获取与之相关的类和资源路径,进而可以根据API调用请求中包含的查询条件,以及需要访问的业务数据的类和相应的资源路径来查询得到相应的业务数据。
实施例二:
如图4所示,处理单元206包括:第二生成单元2066和第二查询单元2068。
其中,第二生成单元2066用于根据所述公共API,以及每种业务数据对应的类名和资源路径生成对应于所述每种业务数据的查询API;第二查询单元2068用于在所述API调用请求是针对指定业务数据的API调用请求的情况下,根据所述API调用请求中包含的针对所述指定业务数据的查询条件,以及所述指定业务数据对应的查询API,查询得到相应的业务数据。
在该实施例中,由于公共API是通用的API,因此通过根据公共API,以及每种业务数据对应的类名和资源路径生成与每种业务数据对应的查询API,使得能够基于公共API来快速的生成并发布每种业务数据对应的OpenAPI,降低了OpenAPI的开发工作量。同时,由于是基于公共API来生成针对每种业务数据的查询API,因此API调用请求中仅需要包含针对指定业务数据的查询条件即可,进而可以根据指定业务数据对应的查询API来查询得到相应的业务数据。
进一步地,所述第二查询单元2068具体用于:根据所述指定业务数据对应的查询API,确定所述指定业务数据的类和相应的资源路径;根据所述指定业务数据的类和相应的资源路径,以及针对所述指定业务数据的查询条件,查询得到相应的业务数据。
在该技术方案中,由于指定业务数据对应的查询API是根据公共API,以及该业务数据对应的类名和资源路径生成的,因此可以根据指定业务数据对应的查询API来确定该业务数据的类和相应的资源路径,进而可以基于确定的业务数据的类和相应的资源路径,以及API调用请求中包含的查询条件来查询得到相应的业务数据。
在本发明的一个实施例中,如图5所示,根据本发明的第二个实施例的基于元数据的OpenAPI实现装置500在具有上述的第一生成单元202、接收单元204和处理单元206的基础上,还包括:配置单元208,配置用于对业务数据的类进行访问控制的黑名单和/或白名单,所述白名单包含有允许基于所述公共API访问的业务数据的类名,所述黑名单包含有不允许基于所述公共API访问的业务数据的类名;所述处理单元206还用于,根据所述黑名单和/或白名单,以及所述公共API和所述API调用请求查询相应的业务数据。
在该技术方案中,通过配置对业务数据的类进行访问控制的黑名单和/或白名单,以根据配置的黑名单和/或白名单,以及公共API和API调用请求查询相应的业务数据,使得能够根据需求灵活设置禁止访问的类名和允许访问的类名,以提高数据的安全性。
综上所述,本发明主要是提出了一种基于元数据的OpenAPI实现方法,由于各个业务模块都有一些类似的功能,因此可以抛开业务逻辑,从元数据的角度来实现公共API,进而基于公共API以较少的开发成本实现大批量OpenAPI的快速发布。
具体地,本发明基于ERP产品中对于业务数据进行统一描述的元数据,按照元数据的规则对各种业务数据进行统一的访问,封装通用的操作作为公共API,将公共API作为ACC(Adapter Common Component,适配器公共)组件,以补丁的形式发布在ERP产品中,对外提供REST(Representational State Transfer,表述性状态转移)资源,和原来每个业务模块自己实现的OpenAPI是并列关系。部署在ERP产品所在私有云中的网关(即私有云网关)负责OpenAPI调用的转发、过滤、统计等功能,其中的适配器对公共API做统一的处理,如结果集限制、公式执行等。整体的实现原理图如图6所示,其中,ACC组件实现了基于元数据所开发的公共API,基于公共API的查询方式需要输入的参数包括:业务数据的类名和查询条件,这些都是API的调用者输入的,API的实现者不需要对各种业务数据的了解,只需要了解元数据即可。
在ERP系统中所有的业务数据都是按照元数据描述的规则储存的,所以在知道该业务数据的类名后,就可以通过元数据信息获取到与其相关的类,以及它们所对应的数据库表(即资源路径)。而查询条件中以元数据全路径的方式确定属性,从而查询出满足条件的业务数据。换句话说,根据公共API和调用请求中包含的业务数据的类名,确定业务数据的类和资源路径,进而依据查询条件进行查询。
为了保护ERP产品中部分数据的安全,ACC组件中实现白名单和黑名单功能,在白名单文件中配置可以通过公共API访问的类名,在黑名单文件中配置不允许通过公共API访问的类名。这样在公共API被调用时就可以根据类名来判断是否允许访问对应的数据。
图6中所示的业务组件可以根据每个业务模块自己实现的OpenAPI来实现数据的访问,即在图6所示的原理图中,可以兼容目前的OpenAPI的实现方案。
其中的私有云网关部署在ERP服务所在的私有云中,该网关负责对外部的API调用进行过滤转发,对于公共API的调用,网关中的适配器会进行相关的处理。具体如图7所示,在接收到查询请求时,网关适配器对查询条件进行封装,以转换为ACC组件支持的格式,进而传递给ACC组件,ACC组件构建查询条件并执行查询操作,然后由网关适配器对查询结果进行处理。
由于基于元数据开发的公共API只是通用的API,因此可以按照不同的业务将其封装成不同业务下的简单查询API,在配置文件中配置对应的资源路径和类名映射即可,这样每个业务模块下都有了几个简单的查询API,由于ERP产品中业务模块是非常多的,所以一个公共API其实是实现了很多个API,这些API在经过网关时会经过适配器的处理,最终调用的还是那个公共API。换句话说,可以根据公共API和每种业务数据(也即业务模块)对应的资源路径和类名映射来生成针对每种业务数据的API,这样基于公共API的查询方式仅需要输入针对某种业务数据的查询条件即可。
此外,通过将一些处理放到网关的适配器中,如查询结果的处理(包括公式执行、字段过滤、精度处理等),降低了对ERP产品的侵入性,如果有新的处理功能,只需要在网关的适配器中进行就可以了,无需修改ERP服务器。
本发明上述实施例的技术方案极大地降低了OpenAPI的开发工作量,可以无需了解详细业务逻辑,只需通过配置文件就能够快速发布大量的OpenAPI。同时,私有云网关及其适配器可以确保ERP产品对OpenAPI进行更好的监控和管理,也能更方便地提供一些公共处理(如结果集限制、公式执行等)。
以上结合附图详细说明了本发明的技术方案,本发明提出了一种新的基于元数据的OpenAPI实现方案,可以根据公共API和调用方发送的API调用请求来查询得到相应的业务数据,无需针对每个业务数据重新开发OpenAPI,极大地降低了OpenAPI的开发工作量和实现难度,有利于满足企业对OpenAPI的需求。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种基于元数据的OpenAPI实现方法,其特征在于,包括:
基于对业务数据进行统一描述的元数据生成公共API;
接收调用方发送的针对业务数据的API调用请求;
根据所述公共API和所述API调用请求查询相应的业务数据,并响应所述调用请求。
2.根据权利要求1所述的基于元数据的OpenAPI实现方法,其特征在于,在所述API调用请求中包含有需要访问的业务数据的类名和查询条件的情况下,根据所述公共API和所述API调用请求查询相应的业务数据的步骤,具体包括:
根据所述业务数据的类名和所述公共API确定所述需要访问的业务数据的类和相应的资源路径;
根据所述需要访问的业务数据的类和相应的资源路径,以及所述查询条件,查询得到相应的业务数据。
3.根据权利要求1所述的基于元数据的OpenAPI实现方法,其特征在于,根据所述公共API和所述API调用请求查询相应的业务数据的步骤,具体包括:
根据所述公共API,以及每种业务数据对应的类名和资源路径生成对应于所述每种业务数据的查询API;
在所述API调用请求是针对指定业务数据的API调用请求的情况下,根据所述API调用请求中包含的针对所述指定业务数据的查询条件,以及所述指定业务数据对应的查询API,查询得到相应的业务数据。
4.根据权利要求3所述的基于元数据的OpenAPI实现方法,其特征在于,根据所述API调用请求中包含的针对所述指定业务数据的查询条件,以及所述指定业务数据对应的查询API,查询得到相应的业务数据的步骤,具体包括:
根据所述指定业务数据对应的查询API,确定所述指定业务数据的类和相应的资源路径;
根据所述指定业务数据的类和相应的资源路径,以及针对所述指定业务数据的查询条件,查询得到相应的业务数据。
5.根据权利要求1至4中任一项所述的基于元数据的OpenAPI实现方法,其特征在于,还包括:
配置用于对业务数据的类进行访问控制的黑名单和/或白名单,所述白名单包含有允许基于所述公共API访问的业务数据的类名,所述黑名单包含有不允许基于所述公共API访问的业务数据的类名;
根据所述黑名单和/或白名单,以及所述公共API和所述API调用请求查询相应的业务数据。
6.一种基于元数据的OpenAPI实现装置,其特征在于,包括:
第一生成单元,用于基于对业务数据进行统一描述的元数据生成公共API;
接收单元,用于接收调用方发送的针对业务数据的API调用请求;
处理单元,用于根据所述公共API和所述API调用请求查询相应的业务数据,并响应所述调用请求。
7.根据权利要求6所述的基于元数据的OpenAPI实现装置,其特征在于,在所述API调用请求中包含有需要访问的业务数据的类名和查询条件的情况下,所述处理单元包括:
确定单元,用于根据所述业务数据的类名和所述公共API确定所述需要访问的业务数据的类和相应的资源路径;
第一查询单元,用于根据所述需要访问的业务数据的类和相应的资源路径,以及所述查询条件,查询得到相应的业务数据。
8.根据权利要求6所述的基于元数据的OpenAPI实现装置,其特征在于,所述处理单元包括:
第二生成单元,用于根据所述公共API,以及每种业务数据对应的类名和资源路径生成对应于所述每种业务数据的查询API;
第二查询单元,用于在所述API调用请求是针对指定业务数据的API调用请求的情况下,根据所述API调用请求中包含的针对所述指定业务数据的查询条件,以及所述指定业务数据对应的查询API,查询得到相应的业务数据。
9.根据权利要求8所述的基于元数据的OpenAPI实现装置,其特征在于,所述第二查询单元具体用于:
根据所述指定业务数据对应的查询API,确定所述指定业务数据的类和相应的资源路径;
根据所述指定业务数据的类和相应的资源路径,以及针对所述指定业务数据的查询条件,查询得到相应的业务数据。
10.根据权利要求6至9中任一项所述的基于元数据的OpenAPI实现装置,其特征在于,还包括:
配置单元,配置用于对业务数据的类进行访问控制的黑名单和/或白名单,所述白名单包含有允许基于所述公共API访问的业务数据的类名,所述黑名单包含有不允许基于所述公共API访问的业务数据的类名;
所述处理单元还用于,根据所述黑名单和/或白名单,以及所述公共API和所述API调用请求查询相应的业务数据。
CN201611019663.3A 2016-11-14 2016-11-14 基于元数据的OpenAPI实现方法及OpenAPI实现装置 Active CN106445562B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611019663.3A CN106445562B (zh) 2016-11-14 2016-11-14 基于元数据的OpenAPI实现方法及OpenAPI实现装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611019663.3A CN106445562B (zh) 2016-11-14 2016-11-14 基于元数据的OpenAPI实现方法及OpenAPI实现装置

Publications (2)

Publication Number Publication Date
CN106445562A true CN106445562A (zh) 2017-02-22
CN106445562B CN106445562B (zh) 2019-11-15

Family

ID=58220672

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611019663.3A Active CN106445562B (zh) 2016-11-14 2016-11-14 基于元数据的OpenAPI实现方法及OpenAPI实现装置

Country Status (1)

Country Link
CN (1) CN106445562B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108446105A (zh) * 2018-02-08 2018-08-24 广州亦云信息技术股份有限公司 一种轻量级API Server开发框架及开发方法
CN109739573A (zh) * 2018-12-27 2019-05-10 深圳市多度科技有限公司 实现api接口调用的处理方法及装置、实现api接口的系统

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101755456A (zh) * 2007-05-07 2010-06-23 赖安·斯蒂尔伯格 开放式api视频系统及其制造和使用方法
CN101772764A (zh) * 2007-07-31 2010-07-07 微软公司 多线程业务编程库
US20110153590A1 (en) * 2009-12-18 2011-06-23 Electronics And Telecommunications Research Institute Apparatus and method for searching for open api and generating mashup block skeleton code
CN102203730A (zh) * 2011-05-20 2011-09-28 华为技术有限公司 开放应用程序编程接口选择方法及设备
CN102203736A (zh) * 2011-05-20 2011-09-28 华为技术有限公司 开放应用程序编程接口调用方法及设备
CN102866910A (zh) * 2011-08-31 2013-01-09 微软公司 用元数据描述操作系统的本机应用编程接口
CN103618758A (zh) * 2013-10-31 2014-03-05 新浪网技术(中国)有限公司 Web服务器及其系统资源访问控制方法
US20140164449A1 (en) * 2012-12-10 2014-06-12 Postech Academy - Industry Foundation Virtual file system integrating multiple cloud storage services and operating method of the same

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101755456A (zh) * 2007-05-07 2010-06-23 赖安·斯蒂尔伯格 开放式api视频系统及其制造和使用方法
CN101772764A (zh) * 2007-07-31 2010-07-07 微软公司 多线程业务编程库
US20110153590A1 (en) * 2009-12-18 2011-06-23 Electronics And Telecommunications Research Institute Apparatus and method for searching for open api and generating mashup block skeleton code
CN102203730A (zh) * 2011-05-20 2011-09-28 华为技术有限公司 开放应用程序编程接口选择方法及设备
CN102203736A (zh) * 2011-05-20 2011-09-28 华为技术有限公司 开放应用程序编程接口调用方法及设备
CN102866910A (zh) * 2011-08-31 2013-01-09 微软公司 用元数据描述操作系统的本机应用编程接口
US20140164449A1 (en) * 2012-12-10 2014-06-12 Postech Academy - Industry Foundation Virtual file system integrating multiple cloud storage services and operating method of the same
CN103618758A (zh) * 2013-10-31 2014-03-05 新浪网技术(中国)有限公司 Web服务器及其系统资源访问控制方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108446105A (zh) * 2018-02-08 2018-08-24 广州亦云信息技术股份有限公司 一种轻量级API Server开发框架及开发方法
CN109739573A (zh) * 2018-12-27 2019-05-10 深圳市多度科技有限公司 实现api接口调用的处理方法及装置、实现api接口的系统

Also Published As

Publication number Publication date
CN106445562B (zh) 2019-11-15

Similar Documents

Publication Publication Date Title
CN111240763B (zh) 配置更新方法、装置、设备及存储介质
CN110311790B (zh) 一种跨链发送可认证消息的方法和装置
CN108134764B (zh) 一种分布式数据共享交换方法及系统
CN103297475B (zh) Mock服务系统及Mock服务的处理方法
CN109087004B (zh) 一种基于领域模型的公共工作流引擎系统
CN108111629A (zh) 应用编程接口服务装置和应用编程接口服务系统
CN108427550A (zh) 一种Web服务生成方法、装置及设备
CN106126540A (zh) 数据库访问系统及其访问方法
WO2023040502A1 (zh) 用户服务注册
CN109474936A (zh) 应用于多个lora网关之间的物联网通讯方法及系统
CN109635019A (zh) 请求处理方法、装置、设备及存储介质
US10140347B2 (en) Exposing data to query generating applications using usage profiles
CN109299616A (zh) 一种基于连接池的数据安全管控系统和方法
WO2023040498A1 (zh) 用户服务使用
CN105005608A (zh) 基于OpenSearch轻量级卫星数据分布式协同服务系统
WO2023040496A1 (zh) 基于区块链的虚拟资源分配
CN105893055A (zh) 流程引擎平台化触发方法
JP2020521404A (ja) ネットワークサービスの識別子割り当ておよび/または識別子マッピングのためのネットワークエンティティおよび方法
CN111381820A (zh) 一种基于gui自动生成api的方法及装置
CN106445562A (zh) 基于元数据的OpenAPI实现方法及OpenAPI实现装置
CN113762912B (zh) Abs业务系统的业务处理方法、设备及存储介质
CN105516269A (zh) 应用的配置方法和应用的配置装置
CN110662210B (zh) 基于区块链的二次或多次手机号的识别方法、系统及设备
WO2023125773A1 (zh) 大规模微服务集群场景下的全局异常处理方法和平台
CN106656936B (zh) 一种访问控制方法、prp实体、pdp实体和pep实体

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant