Swagger-Codegen自定义设置

Ser*_*gan 6 c# asp.net-web-api swagger-codegen

swagger-codegen用来生成我的客户端C#类.它完成了这项工作,但有一些我想定制的东西:

1)最重要的是,我如何告诉它使用哪个命名空间或基本命名空间?现在所有的genned类都有IO.Swagger.Model命名空间,我该如何改变呢?

2)我生成的所有模型都以I开头......就像在ICustomer中一样...有没有办法自动条带,如果类名以2个大写字母开头,第一个字母是I?

3)如果2可以完成,有没有办法让它附加一个:IWhatever?所以,如果它试图生成ICustomer,我想看到:

public class Customer : ICustomer
Run Code Online (Sandbox Code Playgroud)

可以这样做吗?

4)对于我的上一个问题,我正在使用此命令行:

java -jar swagger-codegen-cli.jar generate 
     -i http://localhost:57772/MyService/swagger/v1/swagger.json 
     -l csharp -o C:/Code/AutoGenned/MyService
Run Code Online (Sandbox Code Playgroud)

问题是它将它添加到路径:src\main\csharp\IO\Swagger

有没有办法让我没有添加到路径?

5)最后,和至少重要的是,它一族4个文件夹:Api,Client,Model,和Properties.有没有办法只生成ClientModel文件夹?

Ser*_*gan 10

基于获得swagger-codegen团队的回应并自行尝试:

1)要修复命名空间,我必须创建一个config.json基本上具有以下内容的文件:

{
  "packageName": "My.Namespace.Whatever"
}
Run Code Online (Sandbox Code Playgroud)

现在我的运行命令是

    java -jar swagger-codegen-cli.jar generate 
     -i http://localhost:57772/MyService/swagger/v1/swagger.json 
     -l csharp -o C:/Code/AutoGenned/MyService 
     -c config.json
Run Code Online (Sandbox Code Playgroud)

2)不能替换,但我可以预先...所以没有一个名为ICustomerI 的类决定ApiICustomer更有意义......所以对于上面的命令,我添加了

--model-name-prefix Api
Run Code Online (Sandbox Code Playgroud)

3)仍然不确定这是否可行.

4)看起来新的变化即将发生变化,这将改变其运作方式.https://github.com/swagger-api/swagger-codegen/issues/2837

5)基于以下信息:https://github.com/swagger-api/swagger-codegen#selective-generation您可以通过添加java系统属性来完成此操作java -Dwhateverproperty.所以最终结果,不包括对#3的任何修复:

java -Dmodels -DsupportingFiles -jar swagger-codegen-cli.jar generate 
     -i http://localhost:57772/MyService/swagger/v1/swagger.json 
     -l csharp -o C:/Code/AutoGenned/MyService 
     -c C:/Code/SwaggerCodeGen/config.json 
     --model-name-prefix Api
Run Code Online (Sandbox Code Playgroud)


Kev*_*Liu 6

对于第1点),除了使用配置文件(-c config.json)之外,

您也可以直接使用该选项: -DpackageName=My.Namespace.Whatever