CN117435177A - 应用程序接口构建方法、系统、设备及存储介质 - Google Patents
应用程序接口构建方法、系统、设备及存储介质 Download PDFInfo
- Publication number
- CN117435177A CN117435177A CN202311753393.9A CN202311753393A CN117435177A CN 117435177 A CN117435177 A CN 117435177A CN 202311753393 A CN202311753393 A CN 202311753393A CN 117435177 A CN117435177 A CN 117435177A
- Authority
- CN
- China
- Prior art keywords
- interface
- target
- metadata
- parameter
- service
- 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
Links
- 238000010276 construction Methods 0.000 title claims abstract description 41
- 238000000034 method Methods 0.000 claims abstract description 217
- 238000012545 processing Methods 0.000 claims abstract description 15
- 230000006870 function Effects 0.000 claims description 53
- 238000004458 analytical method Methods 0.000 claims description 35
- 238000011161 development Methods 0.000 claims description 17
- 239000002131 composite material Substances 0.000 claims description 12
- 238000003672 processing method Methods 0.000 claims description 12
- 238000004806 packaging method and process Methods 0.000 claims description 11
- 230000004044 response Effects 0.000 claims description 6
- 230000001960 triggered effect Effects 0.000 claims description 3
- 238000012795 verification Methods 0.000 claims description 3
- 230000008569 process Effects 0.000 description 20
- 238000005538 encapsulation Methods 0.000 description 14
- 239000008186 active pharmaceutical agent Substances 0.000 description 12
- 239000003607 modifier Substances 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 239000011800 void material Substances 0.000 description 5
- 238000006243 chemical reaction Methods 0.000 description 4
- 238000004590 computer program Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000010354 integration Effects 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000006424 Flood reaction Methods 0.000 description 1
- 230000005856 abnormality Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000009517 secondary packaging Methods 0.000 description 1
- 238000012384 transportation and delivery Methods 0.000 description 1
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/31—Programming languages or programming paradigms
- G06F8/315—Object-oriented languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/907—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
-
- 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/36—Software reuse
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Computing Systems (AREA)
- Computer Security & Cryptography (AREA)
- Library & Information Science (AREA)
- Data Mining & Analysis (AREA)
- Stored Programmes (AREA)
Abstract
本申请提供一种应用程序接口构建方法、系统、设备及存储介质。涉及数据处理技术领域,该方法包括:获取针对目标接口服务设置的接口配置信息和接口描述信息;该接口配置信息,从元数据中心搜索得到与该接口配置信息匹配的目标元数据;根据该接口描述信息和目标元数据,执行该目标接口的构建。该方法提高了应用程序接口的生成效率及准确度。
Description
技术领域
本申请涉及数据处理技术领域,尤其涉及一种应用程序接口构建方法、系统、设备及存储介质。
背景技术
随着互联网的不断发展和扩展,应用程序接口API(Application ProgrammingInterface)成为了连接不同应用程序和服务的关键组成部分。API允许不同的软件系统之间进行通信和数据交换,从而推动了各种应用程序的互操作性和集成,开发和管理API是软件开发和互联网应用的关键任务之一。
目前,API的创建需要研发人员手动编写API文档、验证逻辑和代码框架,从而完成API的构建。
但基于研发人员构建API的方式需要手动编写API文档、代码等,需要花费大量时间,效率较低。
发明内容
本申请提供一种应用程序接口构建方法、系统、设备及存储介质,用以解决的目前的基于研发人员构建API的方式需要手动编写API相关信息,需要花费大量时间,效率较低的问题。
第一方面,本申请提供一种应用程序接口构建方法,包括:
基于针对目标接口服务设置的接口配置信息,从元数据中心获取所述接口配置信息匹配的目标元数据;其中,所述目标元数据为所述元数据中心中的根据所述目标接口服务的服务信息解析得到的元数据对象;
可选地,所述接口配置信息中包括:目标接口服务的接口识别信息,所述接口识别信息用于在服务框架中唯一识别所述目标接口服务;
所述基于针对目标接口服务设置的接口配置信息,从元数据中心获取所述接口配置信息匹配的目标元数据,包括:
通过预设数据编码算法,对所述接口配置信息中的接口识别信息进行编码处理,得到目标接口标识;
根据所述目标接口标识从元数据中心获取所述接口配置信息匹配的目标元数据。
可选地,所述接口识别信息包括目标接口服务的接口名称、版本号、组名称。
可选地,所述根据所述目标接口标识从元数据中心获取所述接口配置信息匹配的目标元数据,包括:
根据所述目标接口标识及目标方法名称,从方法元数据表中查找得到至少一个目标方法元数据,组成目标方法元数据集合,所述目标方法名称从所述接口配置信息中获取;
从类型元数据表中获取与每一所述目标方法元数据关联的目标类型元数据,组成目标类型元数据集合。
可选地,所述通过所述接口配置信息和所述目标元数据生成目标接口,所述目标接口用以提供目标接口服务,包括:
根据所述接口描述信息生成所述目标接口的接口声明,所述接口声明中包括所述目标接口的接口名称和接口参数;
从所述目标元数据中解析目标接口服务对应的待封装参数;
通过预设参数描述模型对所述待封装参数进行封装,以使所述待封装参数关联到所述接口声明中的所述接口参数。
可选地,所述目标元数据至少包括:目标方法元数据集合和目标类型元数据集合;所述待封装参数包括:入参集合中的输入参数和出参集合中的输出参数;
所述从所述目标元数据中解析目标接口服务对应的待封装参数,包括:
遍历所述目标方法元数据集合中的每一目标方法元数据,从所述目标方法元数据的请求参数列表中获取输入参数,得到入参集合;
遍历所述目标类型元数据集合中的每一目标类型元数据,从所述目标类型元数据的返回参数列表中获取输出参数,得到出参集合。
可选地,封装后的所述待封装参数的数据结构中至少包括参数名、参数类型、是否基类、参数顺序、字段描述、子对象列表。
可选地,通过预设参数描述模型对所述待封装参数进行封装,包括:
判断所述待封装参数是否为预设返回类型的输出参数;
若所述待封装参数为所述预设返回类型的所述输出参数,则结束所述待封装参数的该次封装;
若响应于判定所述待封装参数不是所述预设返回类型的所述输出参数,则判断所述待封装参数的数据类型是否为基本类型;
若所述待封装参数的数据类型不是所述基本类型,则基于元数据中心,解析所述待封装参数中的复合对象,得到多个基本类型的数据对象,并根据所述基本类型的数据对象生成多个待封装参数;
若所述待封装参数的数据类型是所述基本类型,或者,完成所述待封装参数中的复合对象的解析,则判断所述待封装参数的数据类型是否为泛化类型;
当所述待封装参数数据类型为泛化类型时,通过预设参数描述模型使用泛型处理方法处理所述待封装参数;
使用泛型处理方法处理所述待封装参数后,判断所述待封装参数的数据类型是否为数组、地图或者队列对应编程语言的预设复杂类型;
若所述待封装参数的数据类型是否为 数组、地图或者队列预设复杂类型,则从所述待封装参数中递归解析得到多个数据对象,并将所述数据对象写入子对象列表中。
可选地,所述判定所述待封装参数不是预设返回类型之后,判断所述待封装参数的数据类型是否为泛化类型之前,还包括:
响应于判定所述待封装参数不是预设返回类型,判断所述待封装参数的数据类型是否为对应编程语言的基本类型,
若所述待封装参数的数据类型不是所述基本类型,则解析所述待封装参数中的复合对象得到多个基本类型的数据对象,并根据所述基本类型的数据对象生成多个待封装参数。
可选地,所述通过预设参数描述模型使用泛型处理方法处理所述待封装参数,包括:
执行至少一次参数解析操作至满足解析完成条件,所述参数解析操作包括:
判断当前的所述待处理参数是否满足解析完成解析条件,其中,所述待处理参数为所述待封装参数中的自定义数据对象,或者,所述待处理参数为上层 待处理参数中自定义数据对象;
若响应于当前的所述待处理参数未完成解析不满足解析完成条件,则判断所述待处理参数中是否包含第一预设字符 ;
若所述待处理参数中包括所述第一预设字符,则从所述待处理参数中删除所述第一预设字符和第二预设字符 ;
从所述元数据中心获取所 述待处理参数的数据类型的类型定义信息;
根据所述类型定义信息,使用预设参数描述模型封装所述待处理参数;
将封装后的所述待处理参数的数据结构存储在上层待处理参数的子对象列表中;
响应于当前的待处理参数满足解析完成条件若所述待处理参数完成解析,或者,完成所述待处理参数的封装,则返回上层执行下一参数解析操作。
可选地,所述基于针对目标接口服务设置的接口配置信息,从元数据中心获取所述接口配置信息匹配的目标元数据之前,还包括:
接收通过第一界面设置的接口描述信息,所述接口描述信息用于描述所述目标接口服务的目标接口;
接收通过第二界面设置的接口配置信息,所述接口配置信息中包括所述目标接口服务的配置参数。
可选地,所述通过所述接口描述信息和所述目标元数据生成目标接口之后,还包括:
接收通过第三界面触发的同步请求,将所述目标接口对应的接口入参配置信息和接口出参配置信息进行反馈,以在第三界面上展示接口入参配置信息和接口出参配置信息,所述接口入参配置信息中包括所述目标接口的目标输出参数,所述接口出参配置信息中包括所述目标接口的目标输出参数;和/或,
接收通过第四界面设置的接口请求配置信息,将所述接口请求配置信息与所述目标接口关联,以供调用方根据所述接口请求配置信息调用所述目标接口;和/或,
接收通过第五界面设置的接口安全配置信息,将所述接口安全配置信息与所述目标接口关联,以使调用方调用所述目标接口时基于所述接口安全配置信息对所述目标接口的调用请求进行安全验证。
可选地,所述元数据中心的获取步骤包括:
获取软件开发工具包上传的服务信息,每一所述软件开发工具包中集成至少一个接口服务的服务信息;
解析每一所述接口服务的所述服务信息,得到多个元数据对象,每一所述元数据对象中包括一个方法元数据、一个接口元数据和一个类型元数据。
可选地,解析每一所述接口服务的所述服务信息,得到多个元数据对象,包括:
从所述接口服务的所述服务信息中获取所述接口服务的接口名称和服务组;
遍历所述接口服务的所述服务信息中的方法函数,并解析得到每一所述方法函数对应的方法元数据和类型元数据;
根据所述方法函数的版本号、所述接口服务的所述接口名称和所述服务组,生成每一所述方法元数据对应的接口元数据;
其中,所述方法元数据中至少包括所述方法函数的方法请求参数列表、方法名称、所述接口服务的接口标识,所述类型元数据中包括所述方法函数的返回参数列表,所述接口元数据中包括所述接口服务的所述接口标识;
其中,所述接口标识通过使用预设数据编码算法对所述版本号、接口名称和组名称的拼接信息进行编码得到。
第二方面,本申请提供一种基于应用程序接口构建的元数据上报方法,包括:
通过获取软件开发工具包向开放平放台上报的服务信息,使所述开放平台将根据所述服务信息解析得到的元数据对象存储到元数据中心,所述元数据对象用于实现如第一方面所述的方法;
所述软件开发工具包中集成至少一个接口服务。
第三方面,本申请提供一种应用程序接口构建方法,包括:
通过第一界面针对目标接口设置接口描述信息;
通过第二界面针对目标接口设置接口配置信息;
其中,所述接口描述信息和所述接口配置信息用以实现如第一方面所述的方法。
第四方面,本申请提供一种应用程序接口构建系统,包括用户终端、开放平台、元数据中心和服务平台:
所述用户终端用于,展示第一界面和第二界面,并将通过第一界面针对目标接口设置的接口描述信息和通过第二界面设置的接口配置信息发送给所述开放平台;
所述开放平台用于,基于针对目标接口服务设置的接口配置信息和接口描述信息,从元数据中心获取所述接口配置信息匹配的目标元数据;以及根据所述接口描述信息和所述目标元数据,生成目标接口;
所述服务平台用于,基于目标接口提供所述目标接口服务;
所述元数据中心用于,根据所述目标接口服务的服务信息解析得到的元数据对象以得到目标元数据,并根据接口配置信息向开发平台提供目标元数据。
第五方面,本申请提供一种计算机设备,包括:处理器,存储器及收发器;
所述存储器存储计算机执行指令;
所述处理器执行所述存储器存储的计算机执行指令,使得所述处理器执行如第一方面、第二方面或者第三方面的方法。
第四方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行如第一方面、第二方面或者第三方面的方法。
本申请提供的 应用程序接口构建方法、系统、设备及存储介质,通过获取针对目标接口服务设置的接口配置信息和接口描述信息;根据该接口配置信息,从元数据中心搜索得到与该接口配置信息匹配的目标元数据。服务器可以根据该接口描述信息和目标元数据,执行该目标接口的构建的方法,实现提高接口的生成效率的效果,并且通过自动化构建目标接口,实现了接口的标准化,降低了人为导致接口异常的概率从而提升应用程序接口创建的准确度,并且该自动化接口的构建效率满足了快速变化需求的响应速度。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1为本申请提供的应用程序接口构建方法的网络架构示意图;
图2为本申请提供的一种应用程序接口构建方法的流程示意图;
图3为本申请提供的一种元数据对象的示意图;
图4为本申请提供的一种泛型处理方法的执行流程图;
图5为本申请提供的一种封装的执行流程图;
图6为本申请提供的一种服务器获取元数据的执行流程图;
图7为本申请提供的一种第一界面示意图;
图8为本申请提供的一种第二界面示意图;
图9为本申请提供的一种第三界面示意图;
图10为本申请提供的一种第四界面示意图;
图11为本申请提供的一种第五界面示意图;
图12为本申请提供的一种应用程序接口构建方法的流程示意图;
图13为本申请提供的一种软件开发包的上报交互图;
图14为本申请提供的一种计算机设备的硬件结构示意图。
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
应用程序接口API(Application Programming Interface)是一组定义了不同软件组件或系统之间交互方式的规则和协议。它允许不同的应用程序或系统之间共享功能和数据,而无需了解其内部工作原理。API可以包括函数、方法、类、协议等,它们提供了一种标准化的方式来访问和操作软件组件的功能,从而促进了应用程序的开发和集成。目前,API的创建需要研发人员手动编写API文档、验证逻辑和代码框架,从而完成API的构建。
随着互联网的不断发展和扩展,API成为了连接不同应用程序和服务的关键组成部分。API允许不同的软件系统之间进行通信和数据交换,从而推动了各种应用程序的互操作性和集成。开发和管理API是软件开发和互联网应用的关键任务之一。
在当今数字化时代,开放平台的重要性愈发显著。该开放平台(Open Platform)是指一个允许第三方开发者创建和整合应用程序的软件平台或硬件平台。它提供了一组API和工具,使开发者能够构建基于平台的应用程序,与平台上的服务和数据进行交互。开放平台通常为开发者提供了开发文档、软件开发工具包(Software Development Kit ,SDK)和开发环境,以便他们能够创建应用程序,扩展平台的功能,或者与平台上的其他应用程序进行集成。
开发者/技术人员在开放平台中的开发者社区中,对于使用和集成API的需求越来越高。传统上,API的创建需要手动实现,通常涉及大量人工工作,包括手动编写API文档、验证逻辑和代码框架。然而,手动创建API时,在手动编写文档和源代码过程中涉及大量的人工工作,消耗了大量时间和人力资源,存在开发周期不稳定的情况,容易出现开发效率低的问题。并且,手动创建API时,不仅容易出现拼写错误、参数错误和格式错误等简单问题,还对开发者处理复杂的API结构和功能,提出较高的技术知识和经验的要求,容易增加API中的不确定性,从而影响API的质量。以及,手动创建的API在API结构或者功能发生变化时,维护难度高。同时,手动创建API通常根据当前需求创建,存在自定义和扩展能力差的问题,当无法满足业务的快速扩展需求时,很难快速满足需求。
针对上述问题,本申请提供了一种应用程序接口自动化构建的方法和系统,可以基于元数据上报来构建开放API。本申请的方法减少了API开发过程中开发者的工作,通过自动生成的方式,提高了构建的API的一致性和质量,提高了API生成效率,并加速API的交付时间。在API自动化创建过程中,本申请还考虑了元数据的管理和安全性,以提高API的正确性和安全性。
本申请最终得到的目标API为对外以HTTP协议提供的标准API。该API可以在开放网关内部进行认证、安全管控、参数处理、协议转换等处理后,以内部dubbo方式实现路由调用的内部服务。
本申请的通过元数据上报实现自动构建开放API,可应用于大数据技术、云计算、物联网技术、车联网技术等领域,解决了现有技术中由于人工手动编写API相关信息导致的API创建效率低和错误率高的局限性,提供了更灵活、更高效、更安全的API开发和管理方法。需要注意的是,本申请是基于元数据完成目标API构建和接口定义。在完成该目标API的构建后,基于API定义构建接口文档以及外部接口SDK等需要额外执行。
相对传统手动创建的API,本申请通过自动生成API,大大缩短开发周期。并且开发者无需手动编写和维护API接口定义。本申请的自动化构建API,实现了从元数据中生成API接口定义的效果,节省了大量时间和人力资源,提高了API开发效率。同时,自动化生成的API,减少了人为错误的机会。手动创建API接口时,容易出现拼写错误、参数错误和格式错误等问题。自动生成API通过元数据保持一致性,减少了这些错误的风险。同时,自动生成API接口定义通常遵循标准的API描述语言规范,如OpenAPI规范。这意味着生成的API接口遵循一致的格式和结构,使其易于理解和使用,实现了更好的标准化效果。该自动化生成API接口定义的实现,可以确保API在整个平台上的一致性。不同的开发者和团队都可以使用相同的规范和标准,提高了同一个平台上的接口一致性。
此外,本申请虽然自动生成API,但是本申请允许开发者进行自定义和扩展。开发者可以根据自身需求添加额外的业务逻辑、自定义参数或权限设置,从而在不牺牲效率的情况下实现个性化需求,提高API开发的灵活性。以及,当元数据对象发生变化时,自动生成的API可以自动更新,无需手动维护和同步修改API接口定义,提高了API的准确性和实时性。对于快速变化的业务需求,自动生成API能够更快速地响应变化,提供更灵活的开发和发布周期。
此外,传统手工创建API可能需要开发者具备较高的技术水平和深入的API知识。而自动生成API则降低技术门槛,使更多的开发者能够轻松创建和管理API。
其中,本申请所使用的元数据(Metadata)是关于数据的数据。它是描述数据的信息,包括数据的属性、结构、关系和内容。元数据可以用于描述数据集、数据库表、文件、文档等,以帮助用户理解和管理这些数据。在技术领域,元数据通常用于数据管理、搜索、分类、安全性控制等方面。在本申请中,元数据指的是用于描述API接口的相关信息,如请求参数、响应结构、权限要求等。
本申请所使用的元数据主要通过解析SDK上传的服务信息得到。本申请中SDK上传的服务信息中可以包括二方包。二方包又被称为二方、二方库。二方包可以包括公司内部的依赖库和公司内部其它项目发布的jar包。如公司项目平台的核心依赖包等。此外,该服务信息中还可以包括三方包。三方包又被称为三方、三方库。三方包可以包括公司外部的开源库或开源项目贡献的jar包。比如apache、google、Ali、ibm等发布的依赖库。以及,该服务信息中还可以包括一方包。一方包又被称为一方、一方库。一方包可以包括当前项目/工程中的类和方法、接口等。即该一方包中包括本申请的目标接口服务对应的工程中各模块的相互依赖库。
下面对本申请实施例提供的应用程序接口构建方法的网络架构及应用场景进行介绍。
如图1所示,本申请实施例提供的应用程序接口构建方法对应的网络架构中包括:用户终端101、开放平台102、服务平台103。开放平台102和用户终端101通信连接。开放平台102可以接收用户终端101发送的API创建请求。该API创建请求中可以包括需要创建的目标接口服务的接口配置信息和接口描述信息。开放平台102可以接收用户终端101发送的API创建请求,并自动创建目标API。该目标API即为目标接口。开放平台102可以在完成该目标API的创建后,将该目标API的部署在服务平台103。用户终端101可以通过该服务平台103实现该目标API的访问。其中,服务平台103可以将服务信息上传到开放平台102。开放平台102可以根据该服务信息生成元数据对象。开放平台102可以根据该元数据对象,实现根据API创建请求,创建该目标API。
本申请中,该元数据对象的解析和存储可以在元数据中心实现。需要注意的是,本申请中所使用的元数据中心是一个术语,用于描述一个专门的数据存储区域或系统。该数据存储区域或者系统用于管理和存储元数据。该元数据中心的存储区域或者系统,可以相对于开放平台102独立设置。或者,该元数据中心的存储区域或者系统,可以为开放平台102中的存储区域或者系统。
在本申请以服务器为执行主体进行说明。该服务器即为图1中的开放平台。服务器作为开放平台,能够为用户提供API自动创建平台。API的实质通常为一个功能函数。该功能函数可以包括输入参数和输出参数。调用方可以根据该API的接口声明,实现该功能函数的调用。该接口声明中可以包括该API的接口名称和接口参数。调用方可以在调用该API后,获取通过该API的功能函数处理得到的输出结果。该输出结果中可以包括输出参数。调用方通常可以根据该API的说明文件,实现该输出结果中输出参数的解析。
其中,调用方可以为服务消费者。服务消费者是Dubbo中的一个角色,负责使用远程服务。它通过Dubbo框架从服务注册中心获取服务提供者的地址,并通过接口定义的方法调用远程服务。其中服务注册中心即为图1中的服务平台。该被远程调用的服务即为本申请所说的API。
其中,服务提供者是Dubbo中的另一个角色,负责实现和提供具体的服务功能。它将服务实现为一个接口,并将其注册到Dubbo的服务注册中心,以便其他应用程序可以发现和调用它。在本申请中,服务提供者可以通过开放平台实现一个服务对应的API的创建。在本申请中,该待创建的服务即为目标接口服务。该目标接口服务对应的API即为目标接口。
其中,Dubbo是一种开源的分布式服务框架,用于构建高性能、可伸缩性和可扩展性的分布式应用程序。它提供了服务注册、发现、负载均衡、远程调用等分布式系统的核心功能。在Dubbo中,接口是指服务提供者和服务消费者之间定义的一种契约或协议。服务提供者实现接口的具体功能,服务消费者通过接口调用远程服务。接口定义了服务的方法、参数和返回值等信息。Dubbo接口是指在分布式系统中使用Apache Dubbo(或Dubbo)框架定义的一种接口,用于服务之间的通信和交互。
下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
图2为本申请提供的一种应用程序接口构建方法的流程示意图,如图2所示,以服务器为执行主体,该方法包括:
S101、基于针对目标接口服务设置的接口配置信息,从元数据中心获取接口配置信息匹配的目标元数据;其中,目标元数据为元数据中心根据目标接口服务的服务信息解析得到的元数据对象。
本实施例中,服务器可以获取针对目标接口服务设置的接口配置信息。服务器可以根据该接口配置信息,从元数据中心搜索得到与该接口配置信息匹配的目标元数据。该目标元数据中包括至少一个元数据对象。其中,元数据中心至少可以实现对SDK上传的服务信息的解析,并得到元数据对象。该目标元数据对应的元数据对象可以为该目标接口服务对应的服务信息,被该元数据中心解析得到的元数据对象。可选地,该元数据中心还可以存储其解析得到的元数据对象。
一种示例中,接口配置信息中至少包括目标接口服务的接口识别信息。该接口识别信息用于在服务框架中唯一识别该目标接口服务。同时,该接口识别信息还可以用于在服务平台中唯一识别该目标接口服务。以及,该接口识别信息还可以用于在元数据中唯一识别该目标接口服务。
本示例中,服务器根据接口配置信息实现该目标元数据的获取的过程可以具体分成以下两个步骤:
步骤1、通过预设数据编码算法,对接口配置信息中的接口识别信息进行编码处理,得到目标接口标识。
本步骤中,服务器中可以设置有预设编码算法。可选地,该预设编码算法可以为md5算法或其它相似编码算法。服务器可以使用该预设编码算法对该接口配置信息中的接口识别信息进行编码处理,得到目标接口标识。该目标接口标识即为目标接口服务的接口标识。该接口标识即为接口ID或者interface_id。该接口标识具有唯一性,可以唯一对应于一个接口服务。
可选地,该接口识别信息中可以包括该目标接口服务的接口名称(service_name)、版本号(service_version)、组名称(service_group)。其中,接口名称即为该目标接口服务的服务名称。版本号即需要创建的目标接口服务的版本号。该组名称即为该目标接口服务所属的组。该组可以为业务组。
可选地,该接口识别信息可以通过该接口名称、版本号、组名称拼接得到。该拼接规则可以为顺序拼接接口名称、版本号、组名称对应的字符串。
步骤2、根据目标接口标识从元数据中心获取接口配置信息匹配的目标元数据。
本步骤中,元数据中心可以存储有大量已经完成解析的元数据对象。每一该元数据对象中可以存储有目标接口标识。服务器可以通过搜索该元数据中的各个元数据对象中的目标接口标识,识别到与该接口配置信息匹配的目标元数据。该目标元数据中可以包括至少一个元数据对象。
可选地,每一个目标元数据中可以包括一个方法元数据、一个接口元数据和一个类型元数据。本申请通过接口元数据 、方法元数据、类型元数据三层关系,实现对接口定义的统一描绘。其中,方法元数据中可以用于描述一个方法函数的相关信息。接口元数据中可以描述该方法函数所在的接口服务的相关信息。通常一个接口服务可以对应于多个方法函数。类型元数据可以用于对该方法元数据中的环境、参数等内容进行说明。具体地,该类型元数据中可以包括该方法元数据对应的方法函数的输出参数。因此,一个元数据对象实际上对应了一个接口服务中的一个方法函数。
可选地,在元数据中心,该方法元数据可以存储在方法元数据表中,每一行可以对应于一个方法元数据。接口元数据可以存储在接口元数据表中,每一行可以对应于一个接口元数据。类型元数据可以存储在类型元数据表中,每一行可以对应于一个类型元数据。其中,该方法元数据表、接口元数据表、类型元数据表中的字段可以如图3所示。该三个元数据表相互独立,并通过其中的主键(id)实现该三个表中的数据的关联。即,一个元数据对象对应的接口元数据、方法元数据、类型元数据的主键(id)相同。
该接口元数据中可以包括id、interface_id、interface _name、service_group、service_version、gmt_create、gmt_modified、application_name。其中,id为元数据中心在解析该元数据对象时生成的编码。该id的值通常为11位以内的整形数据。该id值不可为空。例如,该id的值可以为2799。interface_id即为上述步骤中使用的接口标识,每一个接口标识用于唯一标识一个接口服务。该interface_id为长度在32位以内的字符串。该interface_id值不可为空。例如,该interface_id的值可以为11111AAA22B333333333C44D55E6F7GG。interface _name为接口名称。该interface _name为长度在255位以内的字符串。该interface _name值不可为空。例如,该interface _name可以为com.xxxxxxxx.xxService。其中,com.xxxxxxxx.xx为该接口服务的路径。service_group即为服务组。该service_group为长度在64位以内的字符串。该service_group值可为空。例如,该service_group可以为dubbo。service_version即为版本号。该service_version为长度在64位以内的字符串。该service_version值可为空。例如,该service_version可以为1.0.0。gmt_create为该数据表的创建时间。该gmt_create的数据类型为bigint,该gmt_create的数据长度在20位以内的数字。该gmt_create值不可为空。gmt_modified为该数据表的最近一次修改时间。该gmt_modified的数据类型为bigint,该gmt_modified的数据长度在20位以内的数字。该gmt_modified值不可为空。例如,该gmt_create或者gmt_modified的值可以为1683266823019。application_name为该接口服务所在应用程序的名称。该application_name为长度在100位以内的字符串。该application_name值可为空。例如,该application_name可以为xx-xx-center。
该方法元数据中可以包括id、interface_id、method_ name、return_type、return_class、parameter_definitions、gmt_create、gmt_modified。其中,id和interface_id的定义与接口元数据表相同。method_ name为方法名称。该method_ name为长度在128位以内的字符串。该method_ name值不可为空。例如,该method_ name可以为slectList。return_type为返回参数类型,该返回参数类型可以为泛型。该return_type为长度在255位以内的字符串。该return_type值不可为空。例如,该return_type可以为com.xxxxxx.BaseResult<javautil.List<com.xxxxxx.x.xDTO>>。其中,com.xxxxxx.BaseResult为返回参数类。其中,com.xxxxxx.为BaseResult的路径。javautil.List<com.xxxxxx.x.xDTO>为返回参数类型的自定义数据对象。return_class为返回参数类。该return_class为长度在255位以内的字符串。该return_class值不可为空。parameter_definition为方法请求参数。该parameter_definition的数据类型为text文本。该parameter_definition值可为空。例如,text文本中该parameter_definition值可以为[{\" basetype \": false , \" order \": 0 ,\" parameterclassh \":\"com.xx.xxxquery.Dictionaryquery \",\" parameterName \":\" dictionaryQuery\",\" parameterType \":\" com.xxxxx.query.Dictionaryquery \" }]。gmt_create与gmt_modified的定义与接口元数据表相同。
该类型元数据中可以包括id、application_name、env_type、type_name、base_type、enums、properties、gmt_create、gmt_modified。其中,id和application_name的定义与接口元数据表相同。env_type为环境类型。例如,其值可以为dev、testing、staging、production中的任意一个。例如,当该值为test时,可以表示当前的环境为测试环境。该env_type为长度在32位以内的字符串。该env_type值可为空。type_name为类名称。该type_name为长度在255位以内的字符串。该type_name值不可为空。例如,该type_name可以为com.xxxxxx.DictionaryDTO。base_type为是否为java基本类型的判断结果。该base_type为长度在2位以内的字符串。该base_type值不可为空。例如,该base_type的值可以为N。该N可以用于指代否。又如,当该base_type的判断结果为是时,其可以为Y。enums为枚举值。该enums的数据类型为text文本。该enums值可为空。例如,该enums值可以为null。即该enums值为空。properties为属性值。该属性值中可以包括该方法函数的输出参数。该properties的数据类型为text文本。该properties值可为空。例如,该properties的值可以为{“lastUser”:{“baseType”:true,“clazz”:“java.lang.Sting”,“fielDesc”:“最后操作人”,“order”:6,“type”:“java.lang.Sting”},“gmtModified”:{“baseType”:true,“clazz”:“java.lang.Long”,“fielDesc”:“修改时间”,“order”:8,“type”:“java.lang.Long”},“code”:{“baseType”:true,“clazz”:“java.lang.Sting”,“fielDesc”:“英文名”,“order”:3,“type”:“java.lang.Sting”},“name”:{“baseType”:true,“clazz”:“java.lang.Sting”,“fielDesc”:“中文名”,“order”:4,“type”:“java.lang.Sting”},……}。该properties中存储的返回参数都是复合对象的定义。服务器可以根据类型名称以及服务名称,唯一定义当前类型。其中,order用于定义该输出参数的字段序号。该order的设置,可以保证后续自动生成接口的信息与上报的服务信息保持完全一致。gmt_create与gmt_modified的定义与接口元数据表相同。
其中,id为元数据中心在生成该元数据对象时生成的编码。接口id即为目标接口标识。服务器可以根据该接口id,从元数据中心查询得到该接口服务相关的全部方法函数对应的元数据对象。服务器还可以根据该接口id和方法名称,从该数据中心查询得到该接口服务中被命名为该方法名称的全部方法函数。基于该实现,服务器根据目标接口标识获取目标元数据的具体过程可以包括如下步骤:
步骤2.1、根据目标接口标识及目标方法名称,从方法元数据表中查找得到至少一个目标方法元数据,组成目标方法元数据集合,目标方法名称从接口配置信息中获取。
本步骤中,服务器可以从接口配置信息中获取目标方法名称。服务器可以在获取目标接口标识和目标方法名称后,根据该目标接口标识和目标方法名称生成搜索语句。服务器可以使用该搜索语句在元数据中心的方法元数据表中进行查询,得到与该目标接口标识和目标方法名称匹配的至少一个目标方法元数据。服务器可以将该至少一个目标方法元数据组成一个目标方法元数据集合。
步骤2.2、从类型元数据表中获取与每一目标方法元数据关联的目标类型元数据,组成目标类型元数据集合。
本步骤中,服务器可以获取该目标方法元数据集合中每一目标方法元数据的id。服务器可以使用该id从类型元数据表中查询每一目标方法元数据对应的目标类型元数据。服务器可以将这些目标类型元数据组成目标类型元数据集合。
S102、通过接口描述信息和目标元数据生成目标接口,目标接口用以提供目标接口服务。
本实施例中,服务器还可以获取接口描述信息。服务器可以根据该接口描述信息和该上一步骤中得到的目标元数据,执行该目标接口的构建。本申请中该目标接口的构建,主要实现该目标接口的定义的构建。当该构建完成的目标接口被部署到服务平台后,访问者可以在该服务平台访问该目标接口,以向服务消费者提供该目标接口服务。
一种示例中,服务器生成目标接口的具体过程可以包括如下步骤:
步骤1、根据接口描述信息生成目标接口的接口声明,接口声明中包括目标接口的接口名称和接口参数。
本步骤中,服务器可以根据接口描述信息生成目标接口的接口声明。该接口描述信息中可以包括目标接口的接口名称、接口参数等信息。可选地,该接口参数可以对应于该目标接口服务暴露给调用方的接口参数名称。可选地,该接口描述信息中还可以包括该接口服务的数据返回类型。
步骤2、从目标元数据中解析目标接口服务对应的待封装参数。
本步骤中,服务器可以对该目标元数据进行解析,得到其中的待封装参数。该待封装参数中可以包括该目标元数据对应的方法函数中需要使用的输入参数和输出参数。
具体地,服务器解析得到该待封装参数的过程可以包括:
步骤2.1、遍历目标方法元数据集合中的每一目标方法元数据,从目标方法元数据的请求参数列表中获取输入参数,得到入参集合。
本步骤中,服务器可以通过遍历的方式,从目标方法元数据集中获取目标方法元数据。服务器在获取到一个目标方法元数据后,可以对该目标方法元数据的内容进行解析,得到其中的请求参数列表。服务器可以从请求参数列表中,获取输入参数。服务器可以将服务器从该目标方法元数据集中的各个目标方法元数据中获取的输入参数组成入参集合。在该目标方法元数据中,该请求参数列表可以对应于该目标方法元数据的parameter_definition参数。例如,当parameter_definition参数的值为[{\" basetype \": false ,\" order \": 0 ,\" parameterclassh \":\" com.xx.xxxquery.Dictionaryquery\",\" parameterName \":\" dictionaryQuery \",\" parameterType \":\"com.xxxxx.query.Dictionaryquery \" }]时,其输入参数的参数名称可以为dictionaryQuery,该输入参数的数据类型可以为com.xxxxx.query.Dictionaryquery。
步骤2.2、遍历目标类型元数据集合中的每一目标类型元数据,从目标类型元数据的返回参数列表中获取输出参数,得到出参集合。
本步骤中,服务器可以通过遍历的方式,从目标类型元数据集中获取目标类型元数据。服务器在获取到一个目标类型元数据后,可以对该目标类型元数据的内容进行解析,得到其中的返回参数列表。服务器可以从返回参数列表中,获取输出参数。服务器可以将服务器从该目标类型元数据集中的各个目标类型元数据中获取的输出参数组成出参集合。在该目标类型元数据中,该返回参数列表可以对应于该目标类型元数据的properties参数。例如,当该参数中包括{“lastUser”:{“baseType”:true,“clazz”:“java.lang.Sting”,“fielDesc”:“最后操作人”,“order”:6,“type”:“java.lang.Sting”},……}时,服务器可以从中解析得到一个输出参数,其参数名称为lastUser,数据类型为java.lang.Sting。
步骤3、通过预设参数描述模型对待封装参数进行封装,以使待封装参数关联到接口声明中的接口参数。
本步骤中,服务器中可以设置有预设参数描述模型。该预设参数描述模型可以为一个数据结构。例如,该数据结构可以为一个自定义的泛型类。例如,该自定义的泛型可以被命名为EcarxServiceParamClassDTO。该自定义的泛型类的修饰类可以为public。该数据结构中可以包括多个成员变量。可选地,该数据结构中至少包括参数名、参数类型、是否基类、参数顺序、字段描述、子对象列表等成员变量。在服务器使用该预设参数描述模型对待封装参数进行封装时,其实质就是从目标元数据中获取各个成员变量对应的值,并将该值赋给各个成员变量。例如,参数名对应的成员变量的变量名称可以为name,其修饰类可以为peivate,其数据类型可以为String。参数类型对应的成员变量的变量名称可以为className,其修饰类可以为peivate,其数据类型可以为String。是否基类对应的成员变量的变量名称可以为baseType,其修饰类可以为peivate,其数据类型可以为String。参数顺序对应的成员变量的变量名称可以为order,其修饰类可以为peivate,其数据类型可以为Integer。字段描述对应的成员变量的变量名称可以为filedDesc,其修饰类可以为peivate,其数据类型可以为Strring。子对象列表对应的成员变量的变量名称可以为children,其修饰类可以为peivate,其数据类型可以为List<EcarxServiceParamClassDTO>。即该children中可以包括一个列表,该列表中每一项的数据类型可以为自定义的泛型类EcarxServiceParamClassDTO。
其中,服务器通过预设参数描述模型对待封装参数进行封装的具体流程可以包括如下步骤:
步骤3.1、响应于判定待封装参数不是预设返回类型,判断待封装参数的数据类型是否为泛化类型。
本步骤中,服务器可以在确定该待封装参数不是预设返回类型时,继续判断该待封装参数的数据类型是否为泛化类型。
可选地,该预设返回类型可以包括void。该void即为返回值为空。否则,当服务器确定该待封装参数是预设返回类型时,说明该待封装参数的返回值为空,此时,服务器可以结束该待封装函数的封装。
可选地,服务器还可以在获取目标元数据后,获取该目标元数据对应的方法函数的返回值类型。服务器可以判断该方法函数的返回值类型是否为该预设返回类型。服务器可以在确定该方法函数的返回值类型不是预设返回类型时,继续判断该待封装参数的数据类型是否为泛化类型。否则,当服务器确定该方法函数的返回值类型是预设返回类型时,说明该方法函数无返回值。因此,服务器可以不对该待封装函数进行封装。
可选地,当服务器判断确定该待封装参数的数据类型不是泛化类型,该服务器可以记录该待封装参数的封装异常。
可选地,在判断该待封装参数的数据类型是否为泛化类型之前,还可以包括如下步骤:
3.1.1、响应于判定待封装参数不是预设返回类型,判断待封装参数的数据类型是否为对应编程语言的基本类型;
本步骤中,当服务器判定待封装参数不是预设返回类型后,服务器可以先判断该待封装参数的数据类型是否为对应编程语言的基本类型。该对应的编程语言可以为java、c/c++等编程语言。该基本类型可以包括int、long、float、double、char、boolean等数据类型。
3.1.2、若待封装参数的数据类型不是基本类型,则解析待封装参数中的复合对象得到多个基本类型的数据对象,并根据基本类型的数据对象生成多个待封装参数。
本步骤中,服务器可以在确定该待封装参数的数据类型不是基本类型时,确定该待封装参数的数据类型为复合对象。服务器可以对该复合对象的封装参数进行解析,得到该复合对象中的多个基本类型的数据对象。该复合对象可以包括数组、列表、地图、引用、枚举等。该复合对应的待封装参数的数据类型可以为该数组、列表、地图中的任意一种。服务器可以将解析得到的该基本类型的数据对象作为新的待封装参数。需要注意的是,该新的待封装参数的封装结果,将备存储在原待封装参数的子对象列表中。
步骤3.2、当待封装参数数据类型为泛化类型时,通过预设参数描述模型使用泛型处理方法处理待封装参数。
本步骤中,服务器可以在确定该待封装参数的数据类型为泛化类型时,使用预设参数模型,封装该待封装参数。该封装方式可以为泛型处理方法。该泛型处理方法的执行流程可以如图4所示。由于在该待封装参数的封装过程中,服务器需要逐层对该泛化类型的待封装参数进行封装,因此,该封装的过程实际为一个逐层递归的过程。其中,第一层为该待封装参数的封装结果。第二层为第一层待封装参数中的自定义数据对象的封装结果。该第二层的封装结果,被存储在该第一层封装结果的子对象列表。当该第二层的自定义数据对象的数据类型为泛化类型时,第三层为第二层的自定义数据对象的自定义数据对象的封装结果。该第三层的封装结果存储在第二层的子对象列表中。依次往下。该循环过程中,一次循环即为一次参数解析操作。服务器执行至少一次参数解析操作至满足解析完成条件。可选地,该解析完成条件可以为该待封装参数中全部数据对象完成封装。服务器执行的参数解析操作包括如下步骤:
步骤3.2.1、判断当前的待处理参数是否满足解析完成条件,其中,待处理参数为待封装参数中的自定义数据对象,或者,待处理参数为上层待处理参数中自定义数据对象。
本步骤中,服务器可以在获取待处理参数后,先判断该待处理是否满足解析完成条件。如果该待处理参数满足解析完成条件,则说明服务器已经完成该改待处理参数的解析。此时,服务器可以跳转到步骤3.2.7。否则,如果该待处理不满足解析完成条件,则说明该待处理参数还未完成解析,因此,服务器将顺序执行下述步骤,并完成该待处理参数的解析。
可选地,该解析完成条件可以为该待处理中的全部数据对象都已经完成封装。需要注意的是,当该待处理参数的数据类型的为泛化类型时,该待处理的全部数据对象可以包括该待处理对象中的自定义数据对象,以及泛化类型的自定义数据对象中的自定义数据对象,依次递推。在本步骤中,服务器可以将待封装参数作为第一层。该待封装参数的自定义数据对象作为第二层。第二层的泛化类型的自定义数据对象的自定义数据对象作为第三层。依次递推。
可选地,该待处理参数可以包括待封装参数中的自定义数据对象。或者,数据类型为泛化类型的上层待处理参数中自定义数据对象。
步骤3.2.2、响应于当前的待处理参数不满足解析完成条件,判断待处理参数中是否包含第一预设字符 。
本步骤中,当服务器确定当前的待处理参数不满足解析完成条件时,服务器可以判断待处理参数中是否包含第一预设字符。该第一预设字符可以为“<”。通常泛化类型的数据对象中会包含该第一预设字符。
步骤3.2.3、若待处理参数中包括第一预设字符,则从待处理参数中删除第一预设字符和第二预设字符。
本步骤中,服务器可以在可以确定该待处参数中包括该第一预设字符时,将该第一预设字符,以及与该第一预设字符成对出现的第二预设字符,从该待处理参数中删除。该第二预设字符可以为“>”。
步骤3.2.4、从元数据中心获取所述待处理参数的数据类型的类型定义信息。
本步骤中,该待处理参数为自定义数据对象。其中,自定义数据对象的类型定义信息可以从目标元数据中的得到。但是对于该方法函数调用的其他自定义数据对象,则服务器通常可以根据该自定义数据对象的地址,获取该自定义数据对象的具体类型定义信息。例如javautil.List<com.xxxxxx.x.xDTO>中的自定义数据对象可以为com.xxxxxx.x.xDTO。服务器需要根据com.xxxxxx.x.这个地址,找到该xDTO自定义数据对象对应的库函数。由于在本申请中库函数已经被元数据中心解析为元数据对象。因此,服务器可以根据该自定义数据对象的数据对象名称xDTO、目标接口标识、地址com.xxxxxx.x.等信息从元数据中心查询得到该自定义数据对象的元数据对象。服务器可以从该自定义数据对象对应的元数据对象中,解析得到类型定义信息。可选地,该类型定义信息中包括预设参数描述模型中各个成员变量的值。
步骤3.2.5、根据类型定义信息,使用预设参数描述模型封装待处理参数。
本步骤中,服务器可以在获取该类型定义信息后,从该类型定义信息中获取预设参数描述模型中各个成员变量的值。服务器可以通过将各个成员变量的值赋值给其对应的成员变量,实现该待处理参数的封装。该封装后的待处理参数可以为预设参数描述模型的一个对象。即,该封装后的待处参数为一个EcarxServiceParamClassDTO数据对象。
步骤3.2.6、服务器可以将封装后的待处理参数的数据结构存储在上层待处理参数的子对象列表中,执行下一参数解析操作。
步骤3.2.7、响应于当前的待处理参数满足解析完成条件,服务器可以执行下一参数解析操作。
步骤3.3、使用泛型处理方法处理待封装参数后,判断待封装参数的数据类型是否为对应编程语言的预设复杂类型。
本步骤中,服务器可以在使用泛型处理方法完成对待封装参数的处理后,继续判断该待封装参数的数据类型是否为对应编程语言的预设复杂类型。可选地,该对应编程语言可以为java。可选地,该预设复杂类型可以为地图、数组、列表等。
步骤3.4、若待封装参数的数据类型为预设复杂类型,则从待封装参数中递归解析得到多个数据对象,并将数据对象写入子对象列表中。
本步骤中,当该待封装参数的数据类型为预设复杂类型时,服务器可以通过递交解析,得到该预设复杂类型的待封装参数中的多个数据对象。服务器可以将这些数据对象写入子对象列表中。
可选地,该步骤3的具体执行流程可以如图5所示。服务器可以在获取待封住参数后,判断该待封装参数是否为void参数。如果是,则服务器可以在返回特定类型后,返回封装结果。该特定类型可以为根据该void类型预设的封装结果。服务器可以在确定该待封装参数不是void参数时,继续判断该待封装参数的数据类型是否为基本类型。如果是,则服务器可以继续判断该待封装参数中是否存在泛型。如果该待封装参数不属于基本类型,则服务器可以基于元数据对该复合对象类型的待封装参数进行解析。服务器可以在完成该复合对象的解析后,判断解析后的数据对象是否为泛型。该泛型即为泛化类型。当该待封装参数为泛型时,服务器可以处理该泛型的待封装参数。当完成处理后,服务器可以继续判断该待封装参数是否为map类型、数组类型、list类型。如果是,则服务器可以递归解析待封装参数,并将解析结果设置在对象的children字段里。
本申请中的应用程序接口构建方法,服务器可以获取针对目标接口服务设置的接口配置信息和接口描述信息。服务器可以根据该接口配置信息,从元数据中心搜索得到与该接口配置信息匹配的目标元数据。服务器可以根据该接口描述信息和目标元数据,执行该目标接口的构建。本申请,通过使用该目标元数据,实现接口的自动生成,提高了接口的生成效率。
在上述实施例的基础上,如图6所示,为服务器获取元数据以及待封装参数的过程。其中,服务器可以在获取接口配置信息后,根据预设数据编码算法,构建接口id。该接口id即为目标接口标识。服务器还可以根据该接口id从元数据中心查询得到接口信息。服务器还可以从元数据中心,根据该接口id和接口配置信息中获取的方法名称,查询得到目标元数据。该目标元数据中可以包括目标方法元数据组成的目标方法元数据结合。服务器可以从每一目标方法元数据中获取其对应的方法函数的方法信息。该方法信息中可以包括该方法函数的输入参数和输出参数。服务器可以循环获取该方法信息中的输出参数,并组成出参集合。服务器还额可以循环获取该方法信息中的输入参数,并组成入参集合。
在上述实施例的基础上,如图7所示为第一界面。开发者可以在却行需要创建目标接口服务的API后,在用户终端打开该第一界面,并通过该第一界面输入接口描述信息。接口描述信息用于描述目标接口服务的目标接口。可选地,该目标接口信息中可以包括API名称、API中文名称、API版本、API描述。其中,API名称即为接口的英文名称。该英文名称通常为该接口的调用名称。API中文名称的设置通常是为了便于开发者或者调用者识别该接口服务。点击下一步,由此触发API创建请求。服务器接收用户终端上传的API创建请求。服务器通过解析API 创建请求,获取待构建的目标API对应的基本信息。该接口描述信息通常用于实现接口声明。该接口声明是初始API是个基本框架,需要为其配置相关数据,才能使用。
如图8所示为第二界面。开发者可以在第一界面点击下一步后进入该第二界面。该第二界面用于输入目标API的接口配置信息。该接口配置信息可以包括接口名称、方法名称、版本号、组名称、注册中心、超时时间、调用方式等配置参数。其中,调用方式分为异步和同步。当开发者点击下一步时,用户终端将该接口配置信息发送至服务器。
需要注意的是,该第一界面和第二界面为在目标接口服务的目标接口创建过程中必须执行的界面。下述第三界面、第四界面、第五界面则为可以选择执行的界面。
如图9所示为第三界面。开发者可以通过点击同步按钮,使服务器接收通过第三界面触发的同步请求。服务器可以将目标接口对应的接口入参配置信息和接口出参配置信息进行反馈。用户终端可以在第三界面上展示接口入参配置信息和接口出参配置信息。其中,接口入参配置信息中包括目标接口的目标输出参数。可选地,该目标输入参数即为该目标接口的输入参数。可选地,该第三界面上可以展示该目标输入参数的API请求参数、参数类型、是否必填、默认值、参数说明、后端入参等信息。其中,接口出参配置信息中包括目标接口的目标输出参数。可选地,该目标输出参数即为该目标接口的输出参数。可选地,该第三界面的上可以展示该目标输入参数的PI返回参数、参数类型、参数说明、后端出参等信息。
如图10所示为第四界面。开发者可以在该第四界面实现请求配置和参数转换配置。服务器可以接收通过第四界面设置的接口请求配置信息,将接口请求配置信息与目标接口关联,以供调用方根据接口请求配置信息调用目标接口。可选地,服务器还可以通过参数转换配置,实现该接口参数的转换。
如图11所示为第五界面。开发者可以通过该第五界面,实现该目标接口的安全配置。服务器可以接收通过第五界面设置的接口安全配置信息,将接口安全配置信息与目标接口关联,以使调用方调用目标接口时基于接口安全配置信息对目标接口的调用请求进行安全验证。
图12为本申请提供的一种应用程序接口构建方法的流程示意图,如图2所示,以服务器为执行主体,该方法实现了元数据中心的元数据对象的获取,其具体过程包括:
S201、获取软件开发工具包上传的服务信息,每一软件开发工具包中集成至少一个接口服务的服务信息。
本实施例中,服务器可以获取软件开发工具包上传的服务信息。可选地,服务器可以收集来自多个源的服务信息。该多个源可以包括一方包、二方包、三方包。本实施例主要实现了二方包数据的自动上报。
每一个软件开发工具包中可以包括至少一个接口服务的服务信息。该服务信息可以为该接口服务的依赖库。
可选地,该软件开发包上报的服务信息中具体可以包括dubbo接口路径、version、group、方法名称、请求参数及泛化属性、返参参数及泛化属性、字段名称、字段描述、字段顺序等信息。该软件开发包可以基于dubbo实现该服务信息的上报。
S202、解析每一接口服务的服务信息,得到多个元数据对象,每一元数据对象中包括一个方法元数据、一个接口元数据和一个类型元数据。
本实施例中,服务器可以在获取服务信息后,对该服务信息进行解析。每一个服务信息可以解析得到多个元数据对象。该服务信息的解析过程可以通过服务器中的元数据中心实现。每一个元数据对象中可以包括一个方法元数据、一个接口元数据和一个类型元数据。
一种示例中,服务器解析服务信息的过程可以包括:
步骤1、从接口服务的服务信息中获取接口服务的接口名称和服务组。
本步骤中,服务器可以从每一接口服务的服务信息中,获取该接口服务对应的接口名称、服务组等信息。
步骤2、遍历接口服务的服务信息中的方法函数,并解析得到每一方法函数对应的方法元数据和类型元数据。
本步骤中,服务器可以通过遍历接口服务的服务信息中的方法函数的方式,实现每一方法函数的解析。服务器可以解析每一方法函数,得到该方法函数对应的方法元数据和类型元数据。
可选地,服务器还可以在解析时,针对每一个接口服务的每一个方法函数,生成一个id。该id用于唯一标识一个元数据对象。
可选地,方法元数据中至少包括方法函数的方法请求参数列表、方法名称、接口服务的接口标识,类型元数据中包括方法函数的返回参数列表,接口元数据中包括接口服务的接口标识。
步骤3、根据方法函数的版本号、接口服务的接口名称和服务组,生成每一方法元数据对应的接口元数据。
本步骤中,服务器还可以从该服务器信息中获取该方法函数的版本号。服务器可以根据该版本号、接口名称和服务组,生成该方法原数据对应的接口元数据中的接口id。服务器可以将该接口id、版本号、接口名称、服务组等信息存储到接口元数据中。
可选地,接口标识通过使用预设数据编码算法对版本号、接口名称和组名称的拼接信息进行编码得到。
本申请的应用程序接口构建方法,服务器可以获取软件开发工具包上传的服务信息。服务器可以在获取服务信息后,对该服务信息进行解析。每一个服务信息可以解析得到多个元数据对象。本申请,通过解析得到元数据对象,实现了通过元数据对象构建目标接口的方法,提高了目标接口的生成效率。同时,本申请通过软件开发包自动上传服务信息,实现了目标接口的自动化更新,提高了更新效率。
在上述实施例的基础上,该软件开发包的上报过程可以如图13所示。服务与开放平台通信连接,元数据中心分别与开放平台与服务通信连接,其中,开放平台为前述的服务器。元数据中心用于管理和存储元数据。服务预先集成软件开发工具包skd,sdk收集服务的接口名称,根据接口名称确定对应的方法。一个接口对应多个方法。针对每个方法,sdk收集方法名称、参数类型及版本号,基于方法名称、参数类型及版本号组装得到元数据对象。元数据中心将上报的元数据进行入库,开放平台从元数据中心读取所需的元数据。
在上述实施例的基础上,本申请还提供一种基于应用程序接口构建的元数据上报方法。该基于应用程序接口构建的元数据上报方法基于服务平台实现。该方法通过获取软件开发工具包向开放平放台上报的服务信息,使开放平台将根据服务信息解析得到的元数据对象存储到元数据中心,进而实现上述实施例中的应用程序接口构建方法。其中,软件开发工具包中集成至少一个接口服务。
在上述实施例的基础上,本申请还提供一种应用程序接口构建方法。该应用程序接口构建方法基于用户终端实现。该方法通过第一界面针对目标接口设置接口描述信息,通过第二界面针对目标接口设置接口配置信息。其中,接口描述信息和接口配置信息用以实现上述实施例中的应用程序接口构建方法。
在上述实施例的基础上,本申请还提供一种应用程序接口构建系统,该程序接口构建系统可以包括用户终端、开放平台、元数据中心和服务平台。其中,用户终端用于,展示第一界面和第二界面,并将通过第一界面针对目标接口设置的接口描述信息和通过第二界面设置的接口配置信息发送给开放平台。开放平台用于,基于针对目标接口服务设置的接口配置信息和接口描述信息,从元数据中心获取接口配置信息匹配的目标元数据;以及根据接口描述信息和目标元数据,生成目标接口。服务平台用于,基于目标接口提供目标接口服务。元数据中心用于,根据目标接口服务的服务信息解析得到的元数据对象以得到目标元数据,并根据接口配置信息向开发平台提供目标元数据。
图14示出了本申请实施例提供的一种计算机设备的硬件结构示意图。如图14所示,该计算机设备20,用于实现上述任一方法实施例中对应于计算机设备的操作,本实施例的计算机设备20可以包括:存储器21,处理器22。
存储器21,用于存储计算机程序。该存储器21可能包含高速随机存取存储器(Random Access Memory,RAM),也可能还包括非易失性存储(Non-Volatile Memory,NVM),例如至少一个磁盘存储器,还可以为U盘、移动硬盘、只读存储器、磁盘或光盘等。
处理器22,用于执行存储器存储的计算机程序,以实现上述实施例中的应用程序接口构建方法。具体可以参见前述方法实施例中的相关描述。该处理器22可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific IntegratedCircuit,ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合发明所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
可选地,存储器21既可以是独立的,也可以跟处理器22集成在一起。
当存储器21是独立于处理器22之外的器件时,计算机设备20还可以包括总线23。该总线23用于连接存储器21和处理器22。该总线23可以是工业标准体系结构(IndustryStandard Architecture,ISA)总线、外部设备互连(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准体系结构(Extended Industry StandardArchitecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,本申请附图中的总线并不限定仅有一根总线或一种类型的总线。
本实施例提供的计算机设备可用于执行上述的应用程序接口构建方法,其实现方式和技术效果类似,本实施例此处不再赘述。
在上述实施例的基础上,本申请还提供了一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,计算机执行指令被处理器执行上述任意一个实施例中的方法。
在上述实施例的基础上,本申请还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行上述任意一个实施例中的方法。
本领域开发者在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求书指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求书来限制。
Claims (19)
1.一种应用程序接口构建方法,其特征在于,所述方法包括:
基于针对目标接口服务设置的接口配置信息,从元数据中心获取所述接口配置信息匹配的目标元数据;其中,所述目标元数据为所述元数据中心根据所述目标接口服务的服务信息解析得到的元数据对象;
通过接口描述信息和所述目标元数据生成目标接口,所述目标接口用以提供目标接口服务。
2.如权利要求1所述的方法,其特征在于,所述接口配置信息中包括:目标接口服务的接口识别信息,所述接口识别信息用于在服务框架中唯一识别所述目标接口服务;
所述基于针对目标接口服务设置的接口配置信息,从元数据中心获取所述接口配置信息匹配的目标元数据,包括:
通过预设数据编码算法,对所述接口配置信息中的接口识别信息进行编码处理,得到目标接口标识;
根据所述目标接口标识从元数据中心获取所述接口配置信息匹配的目标元数据。
3.如权利要求2所述的方法,其特征在于,所述接口识别信息包括目标接口服务的接口名称、版本号、组名称。
4.如权利要求2所述的方法,其特征在于,所述根据所述目标接口标识从元数据中心获取所述接口配置信息匹配的目标元数据,包括:
根据所述目标接口标识及目标方法名称,从方法元数据表中查找得到至少一个目标方法元数据,组成目标方法元数据集合,所述目标方法名称从所述接口配置信息中获取;
从类型元数据表中获取与每一所述目标方法元数据关联的目标类型元数据,组成目标类型元数据集合。
5.如权利要求1所述的方法,其特征在于,所述通过所述接口配置信息和所述目标元数据生成目标接口,所述目标接口用以提供目标接口服务,包括:
根据所述接口描述信息生成所述目标接口的接口声明,所述接口声明中包括所述目标接口的接口名称和接口参数;
从所述目标元数据中解析目标接口服务对应的待封装参数;
通过预设参数描述模型对所述待封装参数进行封装,以使所述待封装参数关联到所述接口声明中的所述接口参数。
6.如权利要求5所述的方法,其特征在于,所述目标元数据至少包括:目标方法元数据集合和目标类型元数据集合;所述待封装参数包括:入参集合中的输入参数和出参集合中的输出参数;
所述从所述目标元数据中解析目标接口服务对应的待封装参数,包括:
遍历所述目标方法元数据集合中的每一目标方法元数据,从所述目标方法元数据的请求参数列表中获取输入参数,得到入参集合;
遍历所述目标类型元数据集合中的每一目标类型元数据,从所述目标类型元数据的返回参数列表中获取输出参数,得到出参集合。
7.如权利要求5所述的方法,其特征在于,封装后的所述待封装参数的数据结构中至少包括参数名、参数类型、是否基类、参数顺序、字段描述、子对象列表。
8.如权利要求5所述的方法,其特征在于,通过预设参数描述模型对所述待封装参数进行封装,包括:
响应于判定所述待封装参数不是预设返回类型,判断所述待封装参数的数据类型是否为泛化类型;
当所述待封装参数数据类型为泛化类型时,通过预设参数描述模型使用泛型处理方法处理所述待封装参数;
使用泛型处理方法处理所述待封装参数后,判断所述待封装参数的数据类型是否为对应编程语言的预设复杂类型;
若所述待封装参数的数据类型为预设复杂类型,则从所述待封装参数中递归解析得到多个数据对象,并将所述数据对象写入子对象列表中。
9.如权利要求8所述的方法,其特征在于,所述判定所述待封装参数不是预设返回类型之后,判断所述待封装参数的数据类型是否为泛化类型之前,还包括:
响应于判定所述待封装参数不是预设返回类型,判断所述待封装参数的数据类型是否为对应编程语言的基本类型;
若所述待封装参数的数据类型不是所述基本类型,则解析所述待封装参数中的复合对象得到多个基本类型的数据对象,并根据所述基本类型的数据对象生成多个待封装参数。
10.如权利要求8所述的方法,其特征在于,所述通过预设参数描述模型使用泛型处理方法处理所述待封装参数,包括:
执行至少一次参数解析操作至满足解析完成条件,所述参数解析操作包括:
判断当前的待处理参数是否满足解析完成条件,其中,所述待处理参数为所述待封装参数中的自定义数据对象,或者,所述待处理参数为上层待处理参数中自定义数据对象;
响应于当前的待处理参数不满足解析完成条件,判断所述待处理参数中是否包含第一预设字符;
若所述待处理参数中包括所述第一预设字符,则从所述待处理参数中删除所述第一预设字符和第二预设字符;
从所述元数据中心获取所述待处理参数的数据类型的类型定义信息;
根据所述类型定义信息,使用预设参数描述模型封装所述待处理参数;
将封装后的所述待处理参数的数据结构存储在上层待处理参数的子对象列表中,执行下一参数解析操作;
响应于当前的待处理参数满足解析完成条件,执行下一参数解析操作。
11.如权利要求1-10任一项所述的方法,其特征在于,所述基于针对目标接口服务设置的接口配置信息,从元数据中心获取所述接口配置信息匹配的目标元数据之前,还包括:
接收通过第一界面设置的接口描述信息,所述接口描述信息用于描述所述目标接口服务的目标接口;
接收通过第二界面设置的接口配置信息,所述接口配置信息中包括所述目标接口服务的配置参数。
12.如权利要求1-10任一项所述的方法,其特征在于,所述通过所述接口描述信息和所述目标元数据生成目标接口之后,还包括:
接收通过第三界面触发的同步请求,将所述目标接口对应的接口入参配置信息和接口出参配置信息进行反馈,以在第三界面上展示接口入参配置信息和接口出参配置信息,所述接口入参配置信息中包括所述目标接口的目标输出参数,所述接口出参配置信息中包括所述目标接口的目标输出参数;和/或,
接收通过第四界面设置的接口请求配置信息,将所述接口请求配置信息与所述目标接口关联,以供调用方根据所述接口请求配置信息调用所述目标接口;和/或,
接收通过第五界面设置的接口安全配置信息,将所述接口安全配置信息与所述目标接口关联,以使调用方调用所述目标接口时基于所述接口安全配置信息对所述目标接口的调用请求进行安全验证。
13.如权利要求1-10任一项所述的方法,其特征在于,所述元数据中心的获取步骤包括:
获取软件开发工具包上传的服务信息,每一所述软件开发工具包中集成至少一个接口服务的服务信息;
解析每一所述接口服务的所述服务信息,得到多个元数据对象,每一所述元数据对象中包括一个方法元数据、一个接口元数据和一个类型元数据。
14.如权利要求13所述的方法,其特征在于,解析每一所述接口服务的所述服务信息,得到多个元数据对象,包括:
从所述接口服务的所述服务信息中获取所述接口服务的接口名称和服务组;
遍历所述接口服务的所述服务信息中的方法函数,并解析得到每一所述方法函数对应的方法元数据和类型元数据;
根据所述方法函数的版本号、所述接口服务的所述接口名称和所述服务组,生成每一所述方法元数据对应的接口元数据;
其中,所述方法元数据中至少包括所述方法函数的方法请求参数列表、方法名称、所述接口服务的接口标识,所述类型元数据中包括所述方法函数的返回参数列表,所述接口元数据中包括所述接口服务的所述接口标识;
其中,所述接口标识通过使用预设数据编码算法对所述版本号、接口名称和组名称的拼接信息进行编码得到。
15.一种基于应用程序接口构建的元数据上报方法,其特征在于,所述方法包括:
通过获取软件开发工具包向开放平放台上报的服务信息,使所述开放平台将根据所述服务信息解析得到的元数据对象存储到元数据中心,所述元数据对象用于实现权利要求1-14中任一项所述的应用程序接口构建方法;
所述软件开发工具包中集成至少一个接口服务。
16.一种应用程序接口构建方法,其特征在于,所述方法包括:
通过第一界面针对目标接口设置接口描述信息;
通过第二界面针对目标接口设置接口配置信息;
其中,所述接口描述信息和所述接口配置信息用以实现权利要求1-14任一项所述的应用程序接口构建方法。
17.一种应用程序接口构建系统,其特征在于,所述系统,包括用户终端、开放平台、元数据中心和服务平台:
所述用户终端用于,展示第一界面和第二界面,并将通过第一界面针对目标接口设置的接口描述信息和通过第二界面设置的接口配置信息发送给所述开放平台;
所述开放平台用于,基于针对目标接口服务设置的接口配置信息和接口描述信息,从元数据中心获取所述接口配置信息匹配的目标元数据;以及根据所述接口描述信息和所述目标元数据,生成目标接口;
所述服务平台用于,基于目标接口提供所述目标接口服务;
所述元数据中心用于,根据所述目标接口服务的服务信息解析得到的元数据对象以得到目标元数据,并根据接口配置信息向开发平台提供目标元数据。
18.一种计算机设备,其特征在于,包括处理器和存储器;
所述存储器存储计算机执行指令;
所述处理器执行所述存储器存储的计算机执行指令,使得所述处理器执行如权利要求1-14任一项或15或16所述的方法。
19.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1-14任一项或15或16所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311753393.9A CN117435177B (zh) | 2023-12-20 | 2023-12-20 | 应用程序接口构建方法、系统、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311753393.9A CN117435177B (zh) | 2023-12-20 | 2023-12-20 | 应用程序接口构建方法、系统、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117435177A true CN117435177A (zh) | 2024-01-23 |
CN117435177B CN117435177B (zh) | 2024-03-26 |
Family
ID=89551963
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311753393.9A Active CN117435177B (zh) | 2023-12-20 | 2023-12-20 | 应用程序接口构建方法、系统、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117435177B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108491199A (zh) * | 2018-03-06 | 2018-09-04 | 福建天泉教育科技有限公司 | 一种自动生成接口的方法及终端 |
CN110083342A (zh) * | 2019-04-26 | 2019-08-02 | 重庆紫光华山智安科技有限公司 | 一种程序生成方法、装置以及计算机可读存储介质 |
CN111488174A (zh) * | 2020-04-14 | 2020-08-04 | 苏州达家迎信息技术有限公司 | 应用程序接口文档的生成方法、装置、计算机设备及介质 |
WO2020173128A1 (zh) * | 2019-02-27 | 2020-09-03 | 平安科技(深圳)有限公司 | 软件开发工具包的生成方法、装置及终端设备 |
CN111930780A (zh) * | 2020-10-12 | 2020-11-13 | 上海冰鉴信息科技有限公司 | 数据查询方法及系统 |
CN113900725A (zh) * | 2020-07-06 | 2022-01-07 | 腾讯科技(深圳)有限公司 | 接口配置方法、装置、计算机设备和存储介质 |
CN115062084A (zh) * | 2022-08-19 | 2022-09-16 | 中关村科学城城市大脑股份有限公司 | 基于数据库元数据构建api接口方法及装置 |
CN115509647A (zh) * | 2022-11-21 | 2022-12-23 | 深圳市蓝凌软件股份有限公司 | Api接口访问方法、转换方法、装置、设备及存储介质 |
CN116795351A (zh) * | 2022-08-02 | 2023-09-22 | 中移(苏州)软件技术有限公司 | 一种软件工具包的生成方法、装置及可读存储介质 |
-
2023
- 2023-12-20 CN CN202311753393.9A patent/CN117435177B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108491199A (zh) * | 2018-03-06 | 2018-09-04 | 福建天泉教育科技有限公司 | 一种自动生成接口的方法及终端 |
WO2020173128A1 (zh) * | 2019-02-27 | 2020-09-03 | 平安科技(深圳)有限公司 | 软件开发工具包的生成方法、装置及终端设备 |
CN110083342A (zh) * | 2019-04-26 | 2019-08-02 | 重庆紫光华山智安科技有限公司 | 一种程序生成方法、装置以及计算机可读存储介质 |
CN111488174A (zh) * | 2020-04-14 | 2020-08-04 | 苏州达家迎信息技术有限公司 | 应用程序接口文档的生成方法、装置、计算机设备及介质 |
CN113900725A (zh) * | 2020-07-06 | 2022-01-07 | 腾讯科技(深圳)有限公司 | 接口配置方法、装置、计算机设备和存储介质 |
CN111930780A (zh) * | 2020-10-12 | 2020-11-13 | 上海冰鉴信息科技有限公司 | 数据查询方法及系统 |
CN116795351A (zh) * | 2022-08-02 | 2023-09-22 | 中移(苏州)软件技术有限公司 | 一种软件工具包的生成方法、装置及可读存储介质 |
CN115062084A (zh) * | 2022-08-19 | 2022-09-16 | 中关村科学城城市大脑股份有限公司 | 基于数据库元数据构建api接口方法及装置 |
CN115509647A (zh) * | 2022-11-21 | 2022-12-23 | 深圳市蓝凌软件股份有限公司 | Api接口访问方法、转换方法、装置、设备及存储介质 |
Non-Patent Citations (3)
Title |
---|
KOROBKO, AA: "Algorithm of Interface Generation for Model-driven Data Consolidation System", PROCEEDINGS OF THE 2018 3RD RUSSIAN-PACIFIC CONFERENCE ON COMPUTER TECHNOLOGY AND APPLICATIONS (RPC)》, 22 January 2019 (2019-01-22) * |
扈春雷, 刘连忠, 陈维雷: "一种基于元数据的信息维护系统的设计与实现", 计算机与现代化, no. 10, 30 October 2004 (2004-10-30) * |
马玉红: "基于元数据的构件测试用例生成方法研究", 《中国优秀硕士学位论文全文数据库(信息科技辑)》, 15 June 2007 (2007-06-15) * |
Also Published As
Publication number | Publication date |
---|---|
CN117435177B (zh) | 2024-03-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112835560A (zh) | Web多终端低代码智能软件开发平台 | |
CN110609906B (zh) | 知识图谱构建方法及装置、存储介质及电子终端 | |
US11531914B2 (en) | Artificial intelligence (AI) based automatic rule generation | |
CN111427561A (zh) | 业务代码的生成方法、装置、计算机设备和存储介质 | |
CN114625353A (zh) | 模型框架代码生成系统及方法 | |
US8645913B2 (en) | Web-service based generation of business objects | |
CN112860260B (zh) | 一种在高校场景下基于web的跨平台应用构建工具及方法 | |
CN113238740B (zh) | 代码生成方法、代码生成装置、存储介质及电子设备 | |
US11847509B2 (en) | Infrastructure base model API | |
CN115016784B (zh) | 低代码应用复用方法、应用解析系统、设备及存储介质 | |
Rattanapoka et al. | An MQTT-based IoT cloud platform with flow design by Node-RED | |
CN113434175A (zh) | 数据处理方法、装置、存储介质及设备 | |
CN114594927A (zh) | 低代码开发方法、装置、系统、服务器及存储介质 | |
CN114610598A (zh) | 测试方法、装置、电子设备及计算机可读存储介质 | |
CN113987337A (zh) | 基于组件化动态编排的搜索方法、系统、设备及存储介质 | |
CN117435177B (zh) | 应用程序接口构建方法、系统、设备及存储介质 | |
US11025526B2 (en) | Control of event-driven software applications | |
Eslamichalandar et al. | Service composition adaptation: An overview | |
Biehl | GraphQL API Design | |
CN113050935A (zh) | 生成混入对象的方法、装置、计算设备及计算机可读存储介质 | |
US10453019B1 (en) | Business activity resource modeling system and method | |
Bramantya et al. | Modularizing RESTful web service management with aspect oriented programming | |
CN116755684B (zh) | OAS Schema的生成方法、装置、设备及介质 | |
Purer | Web service composition in drupal | |
CN114721929A (zh) | 测试方法、装置、存储介质及设备 |
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 |