一种存储集群中REST代码生成方法及装置制造方法及图纸

技术编号:20654920 阅读:29 留言:0更新日期:2019-03-23 06:40
本申请实施例公开了一种存储集群中REST代码生成方法及装置,具体可以为首先配置了CLI定义文件和REST定义文件,其中,CLI定义文件中每个CLI命令的名称、该CLI命令对应的输入参数以及该输入参数的类型;REST定义文件中定义了每个REST接口的接口名称、REST接口对应的组名以及REST接口支持的请求方法以及所有REST接口对应的共同前缀。然后,设计REST代码模板,该REST代码模板用于表征代码处理逻辑,当需要生成某REST接口所支持请求方法对应的REST代码时,从REST定义文件中和/或CLI定义文件中提取模板变量对应的模板变量值,将提取的模板变量值填充到REST代码模板,从而生成该REST接口对应的REST代码,提高了REST代码生成效率。

【技术实现步骤摘要】
一种存储集群中REST代码生成方法及装置
本申请涉及计算机存储
,具体涉及一种存储集群中REST代码生成方法及装置。
技术介绍
随着存储数据量的不断增大,计算机存储行业也在高速发展。传统的用户在访问存储设备时,通常利用命令行界面(CommandLineInterface,CLI)输入预先设定的命令对存储设备进行查询、增加、删除等操作。这种操作使得用户需要记忆大量的命令,才能实现对于存储设备的访问。为便于用户操作,表述性状态传递(RepresentationalStateTransfer,REST)被广泛应用于存储集群中。REST一组架构约束条件和原则,通常基于使用HTTP,URI,和XML(标准通用标记语言下的一个子集)以及HTML(标准通用标记语言下的一个应用)。在具体应用时,通过提供与CLI具有相同功能的REST接口来实现对存储集群的访问。然而,CLI对应有多种功能,例如查询、增加、删除、修改等,通常情况下一百多个,则需要针对每一种功能提供一个对应的REST接口,从而必须提供一百多个REST接口。由于现有技术是通过人工逐一开发REST接口,由于开发量较大,需要消耗较多的人力,而且由于人工开发的特点,导致开发效率低。
技术实现思路
有鉴于此,本申请实施例提供一种存储集群中REST代码生成方法及装置方法及装置,以降低人力成本,提高开发效率。为解决上述问题,本申请实施例提供的技术方案如下:本申请第一方面提供了存储集群中REST代码生成方法,所述方法包括:配置CLI定义文件以及REST定义文件;所述CLI定义文件包括每个CLI命令名称、所述CLI命令对应的输入参数以及所述参数类型;所述REST定义文件中包括每个REST接口的接口名称、以及所述REST接口对应的组名、所述REST接口支持的请求方法以及所有所述REST接口对应的共同前缀;定义REST代码模板;所述REST代码模块用于表征代码处理逻辑;所述REST代码模板包括至少一个模板变量;从所述REST定义文件和/或CLI定义文件中提取所述模板变量对应的模板变量值,对所述REST模板进行填充,生成REST代码。在一种可能的实现方式中,所述REST接口对应至少一个请求方法,所述从所述REST定义文件和/或CLI定义文件中提取所述模板变量对应的模板变量值,对所述REST模板进行填充,生成REST代码,包括:从所述REST定义文件中提取所述请求方法;所述请求方法中包括使用CLI定义文件中CLI命令的信息以及请求参数;所述请求参数为所述请求方法在所述CLI定义文件中所定义的参数;利用所述请求方法中的所述使用CLI定义文件中命令的信息以及所述请求参数填充所述REST模板,生成所述请求方法对应的REST代码。在一种可能的实现方式中,当生成所述请求方法对应的REST代码后,所述方法还包括:校验所述请求参数是否满足所述REST定义文件对所述请求方法所使用参数的定义;若满足,则将所述请求参数转化为CLI参数;执行所述请求方法对应的CLI命令,获得所述CLI命令对应的输出结果;将所述CLI命令对应的输出结果转化为REST输出结果。在一种可能的实现方式中,当执行所述请求方法对应的CLI命令后,获取所述CLI命令对应的输出视图。在一种可能的实现方式中,所述请求方法为:Get、Post、Delete、Patch、Put。在一种可能的实现方式中,在获取所述CLI命令对应的输出视图或将所述CLI命令对应的输出结果转化为REST输出结果之前,所述方法还包括:判断所述请求方法是否为Get;若不是,则直接返回执行成功信息;若是,则执行后续获取所述输出试图或进行输出结果转化步骤。本申请第二方面提供了一种存储集群中REST代码生成装置,所述装置包括:配置单元,用于配置CLI定义文件以及REST定义文件;所述CLI定义文件包括每个CLI命令名称、所述CLI命令对应的输入参数以及所述参数类型;所述REST定义文件中包括每个REST接口的接口名称、以及所述REST接口对应的组名、所述REST接口支持的请求方法以及所有所述REST接口对应的共同前缀;定义单元,用于定义REST代码模板;所述REST代码模块用于表征代码处理逻辑;所述REST代码模板包括至少一个模板变量;生成单元,从所述REST定义文件和/或CLI定义文件中提取所述模板变量对应的模板变量值,对所述REST模板进行填充,生成REST代码。在一种可能的实现方式中,所述生成单元,包括:提取子单元,用于从所述REST定义文件中提取至少一种请求方法;所述请求方法中包括使用CLI定义文件中命令的信息以及请求参数;所述请求参数为所述请求方法在所述CLI定义文件中所定义的参数;生成子单元,用于利用所述请求方法中的所述使用CLI定义文件中命令的信息以及所述请求参数填充所述REST模板,生成所述请求方法对应的REST代码。在一种可能的实现方式中,所述装置还包括:校验单元,用于在生成REST代码之后,校验所述请求参数是否满足所述REST定义文件对所述请求方法所使用参数的定义;第一转化单元,用于当校验单元的校验结果为满足时,则将所述请求参数转化为CLI参数;执行单元,用于执行所述请求方法对应的CLI命令,获得所述CLI命令对应的输出结果;第二转化单元,用于将所述CLI命令对应的输出结果转化为REST输出结果。在一种可能的实现方式中,所述装置还包括:获取单元,用于当执行所述请求方法对应的CLI命令后,获取所述CLI命令对应的输出视图。在一种可能的实现方式中,所述请求方法为:Get、Post、Delete、Patch、Put。在一种可能的实现方式中,所述装置还包括:判断单元,用于在获取所述CLI命令对应的输出视图或将所述CLI命令对应的输出结果转化为REST输出结果之前,判断所述请求方法是否为Get;返回单元,用于当判断单元的判断结果为不是时,则直接返回执行成功信息;若是,则执行后续所述获取单元或所述第二转化单元。由此可见,本申请实施例具有如下有益效果:本申请实施例首先配置了CLI定义文件和REST定义文件,其中,CLI定义文件中每个CLI命令的名称、该CLI命令对应的输入参数以及该输入参数的类型;REST定义文件中定义了每个REST接口的接口名称、REST接口对应的组名以及REST接口支持的请求方法以及所有REST接口对应的共同前缀。然后,设计REST代码模板,该REST代码模板用于表征代码处理逻辑,当需要生成某REST接口所支持请求方法对应的REST代码时,从REST定义文件中和/或CLI定义文件中提取模板变量对应的模板变量值,将提取的模板变量值填充到REST代码模板,从而生成该REST接口对应的REST代码,提高了REST代码生成效率。附图说明图1为本申请实施例提供的一种存储集群中REST代码生成方法的流程图;图2为本申请实施例提供的CLI定义文件示例图;图3为本申请实施例提供的查询类CLI输出视图示例;图4为本申请实施例提供的REST定义文件示例图;图5为本申请实施例提供的一种REST模板示例图;图6为本申请实施例提供的Get请求方法代码示例;图7为本申请实施例提供的一种存储集群中REST代码生成装置结构图。具体实施方式为使本申请的上述目的、特本文档来自技高网...

【技术保护点】
1.一种存储集群中REST代码生成方法,其特征在于,所述方法包括:配置CLI定义文件以及REST定义文件;所述CLI定义文件包括每个CLI命令名称、所述CLI命令对应的输入参数以及所述参数类型;所述REST定义文件中包括每个REST接口的接口名称、以及所述REST接口对应的组名、所述REST接口支持的请求方法以及所有所述REST接口对应的共同前缀;定义REST代码模板;所述REST代码模块用于表征代码处理逻辑;所述REST代码模板包括至少一个模板变量;从所述REST定义文件和/或CLI定义文件中提取所述模板变量对应的模板变量值,对所述REST模板进行填充,生成REST代码。

【技术特征摘要】
1.一种存储集群中REST代码生成方法,其特征在于,所述方法包括:配置CLI定义文件以及REST定义文件;所述CLI定义文件包括每个CLI命令名称、所述CLI命令对应的输入参数以及所述参数类型;所述REST定义文件中包括每个REST接口的接口名称、以及所述REST接口对应的组名、所述REST接口支持的请求方法以及所有所述REST接口对应的共同前缀;定义REST代码模板;所述REST代码模块用于表征代码处理逻辑;所述REST代码模板包括至少一个模板变量;从所述REST定义文件和/或CLI定义文件中提取所述模板变量对应的模板变量值,对所述REST模板进行填充,生成REST代码。2.根据权利要求1所述的方法,其特征在于,所述REST接口对应至少一个请求方法,所述从所述REST定义文件和/或CLI定义文件中提取所述模板变量对应的模板变量值,对所述REST模板进行填充,生成REST代码,包括:从所述REST定义文件中提取所述请求方法;所述请求方法中包括使用CLI定义文件中CLI命令的信息以及请求参数;所述请求参数为所述请求方法在所述CLI定义文件中所定义的参数;利用所述请求方法中的所述使用CLI定义文件中命令的信息以及所述请求参数填充所述REST模板,生成所述请求方法对应的REST代码。3.根据权利要求2所述的方法,其特征在于,当生成所述请求方法对应的REST代码后,所述方法还包括:校验所述请求参数是否满足所述REST定义文件对所述请求方法所使用参数的定义;若满足,则将所述请求参数转化为CLI参数;执行所述请求方法对应的CLI命令,获得所述CLI命令对应的输出结果;将所述CLI命令对应的输出结果转化为REST输出结果。4.根据权利要求3所述的方法,其特征在于,当执行所述请求方法对应的CLI命令后,获取所述CLI命令对应的输出视图。5.根据权利要求4所述的方法,其特征在于,所述请求方法为:Get、Post、Delete、Patch、Put。6.根据权利要求5所述的方法,其特征在...

【专利技术属性】
技术研发人员:高瑞胜赵鹏
申请(专利权)人:郑州云海信息技术有限公司
类型:发明
国别省市:河南,41

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1