Swagger-Codegen自定义设置

时间:2016-05-11 23:57:50

标签: 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

可以这样做吗?

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

java -jar swagger-codegen-cli.jar generate 
     -i http://localhost:57772/MyService/swagger/v1/swagger.json 
     -l csharp -o C:/Code/AutoGenned/MyService

问题是它将此添加到路径: SRC \主\ CSHARP \ IO \扬鞭

我有没有办法将这个添加到路径中?

5)最后,最不重要的是,它有4个文件夹:ApiClientModelProperties。有没有办法只生成ClientModel文件夹?

2 个答案:

答案 0 :(得分:9)

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

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

{
  "packageName": "My.Namespace.Whatever"
}

现在我的运行命令是

    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

2)无法替换,但我可以预先添加...所以我没有使用名为ICustomer的类,而是认为ApiICustomer更有意义......所以对于上面的命令,我加入

--model-name-prefix Api

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

答案 1 :(得分:5)

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

之外

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

相关问题