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

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

Info

Publication number
CN106445562B
CN106445562B CN201611019663.3A CN201611019663A CN106445562B CN 106445562 B CN106445562 B CN 106445562B CN 201611019663 A CN201611019663 A CN 201611019663A CN 106445562 B CN106445562 B CN 106445562B
Authority
CN
China
Prior art keywords
business datum
api
openapi
metadata
inquiry
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
CN201611019663.3A
Other languages
English (en)
Other versions
CN106445562A (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)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information 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,作为ACC组件;
接收调用方发送的针对业务数据的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,作为ACC组件;
接收单元,用于接收调用方发送的针对业务数据的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 CN106445562A (zh) 2017-02-22
CN106445562B true 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)

Families Citing this family (2)

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

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102203730A (zh) * 2011-05-20 2011-09-28 华为技术有限公司 开放应用程序编程接口选择方法及设备
CN102203736A (zh) * 2011-05-20 2011-09-28 华为技术有限公司 开放应用程序编程接口调用方法及设备
CN103618758A (zh) * 2013-10-31 2014-03-05 新浪网技术(中国)有限公司 Web服务器及其系统资源访问控制方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8122467B2 (en) * 2007-05-07 2012-02-21 Ryan Steelberg Open API video system and method of making and using same
US7908610B2 (en) * 2007-07-31 2011-03-15 Microsoft Corporation Multi-threaded business programming library
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
US20130055291A1 (en) * 2011-08-31 2013-02-28 Microsoft Corporation Describing native application programming interfaces of an operating system with metadata
KR101431912B1 (ko) * 2012-12-10 2014-09-23 포항공과대학교 산학협력단 다수의 클라우드 스토리지 서비스를 통합하는 가상 파일 시스템

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102203730A (zh) * 2011-05-20 2011-09-28 华为技术有限公司 开放应用程序编程接口选择方法及设备
CN102203736A (zh) * 2011-05-20 2011-09-28 华为技术有限公司 开放应用程序编程接口调用方法及设备
CN103618758A (zh) * 2013-10-31 2014-03-05 新浪网技术(中国)有限公司 Web服务器及其系统资源访问控制方法

Also Published As

Publication number Publication date
CN106445562A (zh) 2017-02-22

Similar Documents

Publication Publication Date Title
US10824398B2 (en) System and method for generating an application structure for an application in a computerized organization
CN109087004B (zh) 一种基于领域模型的公共工作流引擎系统
JP6231020B2 (ja) クラウドコンピューティング環境におけるプロセスの調整
US20040216147A1 (en) Component based application middleware framework
JP7084427B2 (ja) ネットワークサービスの識別子割り当ておよび/または識別子マッピングのためのネットワークエンティティおよび方法
KR20130050205A (ko) SaaS 플랫폼 및 이를 이용한 다중 테넌트 지원을 위한 서비스 프로비저닝 방법
CN102208081A (zh) 用于使bpm应用能为多租户使用的方法和装置
WO2023040502A1 (zh) 用户服务注册
CN109241054A (zh) 一种多模型数据库系统、实现方法以及服务器
CN106445562B (zh) 基于元数据的OpenAPI实现方法及OpenAPI实现装置
WO2023040498A1 (zh) 用户服务使用
JPH11338804A (ja) ネットワーク構成管理対象アクセスシステム及び方法
US8166143B2 (en) Methods, systems and computer program products for invariant representation of computer network information technology (IT) managed resources
WO2023125773A1 (zh) 大规模微服务集群场景下的全局异常处理方法和平台
US10628148B1 (en) Resource deployment for inter-platform application manager
CN104461553A (zh) 一种符合smi-s标准的存储管理方法
WO2023040450A1 (zh) 区块链服务网络的组建
CN111831402A (zh) 用于管理软件功能的方法、设备和计算机程序产品
US8620259B2 (en) Model-driven service creation and management
CN113342845A (zh) 数据同步方法、计算机设备及可读存储介质
KR100629018B1 (ko) 기업용 무선 어플리케이션 서비스의 레가시 인터페이스시스템 및 운용방법
US11888944B2 (en) System and method for determination and use of workflow characteristics with an integration cloud service
CN114666388B (zh) 一种面向组织业务的微服务开发方法、装置及存储介质
CN112073358B (zh) 基于Kubernetes的协议转换处理方法和设备
Amaral Orquestração de Serviços em Redes 5G

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