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

如何更改 swagger-codegen 生成的类中的 API 名称

戚阳文
2023-03-14

我使用swagger springmvc和swagger codegen为RESTful Web服务生成Java客户端库。我已经编写了自己的BasicJavaGenerator扩展名(见下文),以覆盖包名,并可以成功生成客户端库文件。生成的“主”文件包括:

swagger-codegen/generated-code/java/pom.xml
swagger-codegen/generated-code/java/src/main/java/com/example/ApiApi.java
swagger-codegen/generated-code/java/src/main/java/com/example/model/*.java

我找不到的是如何设置我的API的名称以使代码生成器将ApiApi.java重命名为MyProjectApi.java(例如),这似乎是在swagger-codesen中包含的示例中完成的。我尝试查看代码生成器代码以覆盖api名称,并且还尝试查看swagger json spec和swagger springmvc功能以设置名称的选项。

代码生成器:

package com.wordnik.swagger.codegen

import com.wordnik.swagger.codegen.BasicJavaGenerator

object MyJavaGenerator extends BasicJavaGenerator {
  def main(args: Array[String]) = generateClient(args)

  // api invoker package
  override def invokerPackage = Some("com.example.api")

  // package for models
  override def modelPackage = Some("com.example.api.model")

  // package for api classes
  override def apiPackage = Some("com.example.api")
}

共有2个答案

滕星纬
2023-03-14

除了公认的答案-为了正确使用大写字母,您可以使用:

override def toApiName(name: String) = "MyProject" + name.capitalize
谢锦程
2023-03-14

您可以这样覆盖此行为:

  override def toApiName(name: String) = "MyProject" + name

随便。请注意,您应该考虑升级到 2.1.0-SNAPSHOT,它位于 https://github.com/swagger-api/swagger-codegen/tree/develop_2.0

 类似资料:
  • 我目前正在通过maven插件使用swagger-codesen:https://github.com/swagger-api/swagger-codegen/tree/master/modules/swagger-codegen-maven-plugin.我已经设置了我希望使用

  • swagger codegen基于路径名生成APIController。 假设你的swagger.yaml有这些路径: /宠物/findByStatus:/user/{userId}/商店/库存 然后codeGen将生成PetAPIController、UserAPIController、StoreApiController。 但我的API类似于: /private/pet/findByStatu

  • 我寻找一些配置,我可以改变接口的名称,已生成,但没有找到解决方案。 对此有什么想法吗??

  • 我使用open-api-3标准创建了一个swagger.json,以便能够使用工具swagger-codegen生成客户端sdk。我的问题是,每个apiendpoint最终都得到自己的api对象,而不是一个api对象用于所有的APIendpoint。 预期: 实际: 问:如何配置swagger codegen或我的swagger.json来为所有实体/资源只创建一个api对象? 在此示例中,我使用

  • 我使用swagger-codigen-2.1.6和成功生成序列化模型类通过swagger-codigen-maven-plugin使用序列化模型配置选项。但是,我没有看到序列VersionUID添加到类中,也找不到任何留档来包含它。任何帮助都将不胜感激。提前感谢。

  • 目标:我正在设计一个RESTAPI,它允许用户在HTTP GET请求的查询字符串上传递参数。差不多 实现:在服务器端,我有一个模型绑定器,它接受这3个参数——api键、术语和行,并将它们转换为C#对象,这样我的控制器操作方法就不必解析查询字符串。控制器动作方法签名看起来像 问题:我在Swagger中遇到的是,当它生成留档和测试线束时,它将输入参数列为request.api键、request.ter