swagger codegen在生成的文件中覆盖我的自定义代码

Nik*_*l S 10 codegen swagger

我使用swagger codegen生成jaxrs服务器端类以及客户端java类.

这是我用来生成类的命令__CODE__

java -jar modules/swagger-codegen-distribution/target/swagger-codegen-distribution-2.1.2-M1.jar   -i /Users/me/Workspace/swagger-codegen/samples/yaml/echo.yaml   -l jaxrs   -o samples/server/echo/java
Run Code Online (Sandbox Code Playgroud)

生成的服务器代码有一个占位符来写我的"魔法".

public Response echo(@ApiParam(value = ""  )@HeaderParam("headerParam") String headerParam,
    @ApiParam(value = "",required=true) @QueryParam("message") String message)
      throws NotFoundException {
      // do some magic!
      return Response.ok().entity(new ApiResponseMessage(ApiResponseMessage.OK, "magic!")).build();
  }
Run Code Online (Sandbox Code Playgroud)

我在"echo"方法中添加了"magic"并重新生成了代码,只是为了看到它消失了.避免丢失自定义代码的一种方法是修改codegen模板以生成接口而不是类.然后我可以在实现的类中拥有所有自定义代码.

我试图找出是否有一种方法可以保留自定义"魔法",即使在重新生成代码之后,或者有更好的方法来处理这种情况,而不是更改模板以生成接口而不是类.

Wil*_*eng 7

Swagger Codegen的最新大师允许您在代码生成过程中在 .swagger-codegen-ignore(类似于 .gitignore)中指定被覆盖的文件。

请拉取最新的 Swagger Codegen 大师来试一试。

更新:2018 年 5 月,大约 50 位 Swagger Codegen 的顶级贡献者和模板创建者决定分叉 Swagger Codegen 以维护一个名为OpenAPI Generator的社区驱动版本。请参阅问答以获取更多信息。

  • 在将文件添加到 .swagger-codegen-ignore 之后,您合并新端点样板代码的工作流程是什么? (2认同)