当前位置: 首页 > 知识库问答 >
问题:

如何使用swagger codegen为Java生成具有不同控制器名称的API?

咸亦
2023-03-14

swagger codegen基于路径名生成APIController。

假设你的swagger.yaml有这些路径:

/宠物/findByStatus:/user/{userId}/商店/库存

然后codeGen将生成PetAPIController、UserAPIController、StoreApiController。

但我的API类似于:

/private/pet/findByStatus: /private/user/{userId} /public/store/inventory

因此,我最终得到了两个主要控制器:PrivateAPI和PublicAPI

有没有办法避免这种情况?使用标记,或仅使用第二个路径字。

谢谢

共有1个答案

乔伯寅
2023-03-14

Swagger Coode en的Spring生成器具有useTags选项(true/false),该选项告诉代码使用标签来命名接口和控制器类。使用Swagger Coode en Maven插件时,您可以在中指定此选项

<configuration>
    <inputSpec>${project.basedir}/src/main/resources/api.yaml</inputSpec>
    <language>spring</language>
    <configOptions>
       <useTags>true</useTags>
    </configOptions>
</configuration>

当使用标签时,带有特定标签的操作(如admin)将被放入AdminApi中。java和AdminAPicController。Java语言

确保适当标记API定义中的所有操作:

paths:
  /foo:
    get:
      tags:    # <-----
        - admin
      ...

 类似资料:
  • 问题内容: 关闭。 此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗? 更新问题,使其成为Stack Overflow 的主题。 9个月前关闭。 改善这个问题 我需要一个用于在Java中生成控制流的工具,而不是可视化绘制的工具,我可以使用它来处理类似路径条件之类的东西。任何人 ? 问题答案: 为了将来记录,我发现最适合我的需求的是Soot。 http://www.sable.mcgi

  • 背景:我们正在开发一个与多个第三方Web服务通信的应用程序。遗憾的是,其中一个使用糟糕的命名约定定义了WSDL文件。响应元素及其使用的complexType经常重复使用相同的名称。下面截取的代码显示了一个这样的实例: 我们使用Maven cxf codigen插件(jaxb/jax-ws)来编译Java类。为了避免名称冲突,我们以前使用过选项-AutoName分辨率。然而,我们发现这会导致意想不到

  • 我正在探索GraphQL,想知道是否有任何重命名响应字段的方法,例如我有一个POJO与这些字段 GraphQL查询: 我的回答是这样的 我是否可以将名称字段重命名为类似用户名的名称,以便我的回答如下

  • 问题内容: 我有一个像这样的POJO,我正在使用GSON序列化为JSON: 这是我的做法: 现在我的json将是这样的: 现在我的问题是:有什么办法可以代替更改变量名呢?在Gson中,我可以在变量顶部使用任何注释吗? 我想要这样的东西: 问题答案: 您可以使用@SerializedName(“ client_id”) 编辑: 您也可以使用它,以通用方式更改所有字段

  • 问题内容: 如何在不同的程序包中访问两个具有相同名称的类? 和 所有这些都在同一个班级 谢谢。 问题答案: 您将必须导入另一个,您将编写完全合格的路径 例如在您的代码中:

  • 生成一个 Http Controller 必选参数: -name 生成的 Controller 类名 -namespace 生成的 Controller 所在命名空间 可选参数: -prefix 路由前缀,不传则为类名 -render 渲染方式,默认为json,可选:html/json/xml -rest 是否生成 RESTful 风格,默认 false -override 是否覆盖已存在的文件,