首页 > 其他分享 >codegen的模板文件mustache中配置在swagger规范文档中自定义属性

codegen的模板文件mustache中配置在swagger规范文档中自定义属性

时间:2024-04-15 17:46:52浏览次数:24  
标签:自定义 custom codegen mustache swagger 模板 属性

在使用swagger-codegen生成代码时,我们经常需要使用自定义属性来生成我们需要的代码。swagger-codegen使用了mustache模板引擎来生成代码,而在mustache模板文件中,我们可以通过配置swagger规范文档中的自定义属性来生成我们需要的代码。本篇文章将从第三级标题开始,详细介绍如何在swagger-codegen的mustache模板文件中配置自定义属性。

一、swagger规范文档中的自定义属性

在swagger规范文档中,我们可以通过使用"x-"前缀来定义自定义属性。例如,我们可以在swagger规范文档中定义以下属性:

swagger: ‘2.0’ info: version: 1.0.0 title: Swagger Petstore description: A sample API that uses a petstore as an example to demonstrate features in the swagger-2.0 specification termsOfService: http://swagger.io/terms/ contact: name: Swagger API Team email: [email protected] url: http://swagger.io license: name: Apache 2.0 url: http://www.apache.org/licenses/LICENSE-2.0.html host: petstore.swagger.io basePath: /v2 tags:

  • name: pet description: Everything about your Pets x-custom-property: custom value 在上面的示例中,我们定义了一个"x-custom-property"属性,并将其设置为"custom value"。在我们生成代码时,我们可以使用这个属性来生成我们需要的代码。

二、mustache模板文件中的自定义属性

在mustache模板文件中,我们可以通过使用"{{x-custom-property}}"来引用swagger规范文档中定义的自定义属性。例如,我们可以在mustache模板文件中定义以下代码:

{{#operations}} {{#x-custom-property}} // custom property: {{x-custom-property}} {{/x-custom-property}} {{/operations}} 在上面的示例中,我们使用了"x-custom-property"属性来生成我们需要的代码。在我们生成代码时,mustache模板引擎会自动将"x-custom-property"属性替换为我们在swagger规范文档中定义的值。

在swagger规范文档中,我们也可以定义一个API的版本号、作者、创建时间等等。这些属性可以在mustache模板中使用,来生成代码中的注释、类名、方法名等等。下面是一个例子:

swagger: ‘2.0’ info: version: 1.0.0 title: My API description: My API description x-author: John Doe x-created-at: ‘2021-08-01T00:00:00Z’ paths: /users: get: summary: Get a list of users description: Returns a list of users responses: ‘200’: description: A list of users schema: type: array items: $ref: ‘#/definitions/User’ definitions: User: type: object properties: id: type: integer format: int64 name: type: string 在这个例子中,我��定义了两个自定义属性,x-author和x-created-at。我们可以在mustache模板中使用这些属性,比如说我们可以在生成的代码中添加一个注释:

/**

  • Generated by swagger-codegen
  • API version: {{info.version}}
  • Created by {{info[‘x-author’]}} on {{info[‘x-created-at’]}} */ 在这个注释中,我们使用了info.version、info[‘x-author’]和info[‘x-created-at’]三个属性。这些属性在mustache模板中使用时,需要使用双括号来包裹,比如说{{info.version}}。

除了使用自定义属性,我们还可以在mustache模板中使用一些内置的属性,比如说{{apiPackage}}、{{modelPackage}}、{{classname}}等等。这些属性可以帮助我们生成更加灵活的代码。

swagger-codegen的使用方法及常见参数配置 swagger-codegen的模板文件mustache中,classname,description,notes如何赋值

标签:自定义,custom,codegen,mustache,swagger,模板,属性
From: https://www.cnblogs.com/bigleft/p/18136586

相关文章

  • codegen的模板文件mustache中,classname,description,notes如何赋值
    Swagger-codegen的模板文件mustacheSwagger-codegen是一个开源的代码生成工具,它可以根据Swagger规范自动生成客户端和服务器端代码。在使用Swagger-codegen时,我们可以通过mustache模板文件来自定义生成的代码。在这篇文章中,我们将介绍如何在mustache模板文件中给classname、descr......
  • 导入自定义板块的方法
         ......
  • EasyExcel 自定义宽高
    packagecom.cloud.module.management.common.handler;importcn.hutool.core.util.ObjectUtil;importcom.alibaba.excel.enums.CellDataTypeEnum;importcom.alibaba.excel.metadata.Head;importcom.alibaba.excel.metadata.data.CellData;importcom.alibaba.excel.......
  • layUI Table自定义工具栏和搜索参数
    layUITable自定义工具栏和搜索参数视频讲解地址https://www.bilibili.com/video/BV1P94y197nNHTML代码<divclass="container-fluid"><tableclass="layui-hide"id="test"lay-filter="test"></table></div><s......
  • SSM使用自定义ConditionalOnProperty实现按需加载spring bean
    SSM使用自定义ConditionalOnProperty实现按需加载springbean背景:公司提供的系统框架是SSM架构,SSM架构是没有springboot的ConditionalOnProperty注解的,而我们的系统是在很多区县部署的,每个区县会有一些定制化需求,其中有一个类只在一个区县里用得到,所以打算采用按需加载bean的......
  • el-table-column自定义实现el-tooltip效果
    说明使用el-table-column自定义某列内容为左侧展示商品图片,右侧展示商品标题以及id,商品标题超过两行显示省略号,并且鼠标移入在上方显示完整。界面展示template...<el-table-columnlabel="商品信息"prop="title"min-width="200"><template#default="scope"><div......
  • Feign日志 - 自定义 info级别打印
    背景由于feign,默认只有debug的level,才能打印出日志。不太符合一般项目的loginfolevel的约定。因此决定自定义feign的log打印。目的在infolevel下,可以打印feign日志寻找线索打开openfeign的核心包目录寻找log相关类 feign-1.png通过FeignLoggerfactor......
  • Entity Framework 自定义外键关系
    EntityFramework自定义外键关系在EntityFramework中,你可以通过在模型类中使用属性来定义自定义外键关系。以下是一个简单的例子,展示了如何在两个实体之间创建一对一的关联关系:  publicclassUser{publicintUserId{get;set;}publicstringUsername......
  • Redefine library-自定义函数库
    1.jjVolcano_Redefinelibrary(scRNAtoolVis)#jjVolcano只有9个颜色,Redefine到我的24个颜色,并与我umap中的分群颜色对应jjVolcano_Redefine<-function(diffData=NULL,myMarkers=NULL,order.by=c("avg_log2FC"),log2FC.cutoff=0.......
  • 实现自定义注解校验方法参数(AOP+自定义注解+自定义异常+全局异常捕获)
    一、实现目的在编写接口的时候,通常会先对参数进行一次校验,这样业务逻辑代码就略显冗杂,如果可以把校验参数的代码进行统一管理,在方法或者属性上直接添加注解就可以实现参数的校验,就可以提升代码编写的效率。二、实现原理通过自定义注解,注解在入参VO的属性上,设定需要满足的条件,然......