首页 > 解决方案 > Swagger codegen 省略空字符串

问题描述

我使用 swagger codegen cli 2.4.8 为带有这些标志的 rest api 生成客户端。

java -jar swagger-codegen-cli.jar generate -i http://xxxxxxx.com/swagger/v1/swagger.json -l csharp -c config.json -o c:\dev\xxxxxClient

其中 config.json 包含

{
    "packageName": "xxxxxxxxx.Client",
    "targetFramework": "v5.0"
}

一切正常,但我希望它省略一个不需要的空字符串。我执行以下操作

var subScriptionResponse = await subscriptionApiClient.UpdateAsync(dbLicense.PublicIdString, new UpdateSubscriptionRequest() { CancelAtPeriodEnd = delete });

但是UpdateSubscriptionRequest有两个属性,生成的构造函数看起来像这样

public UpdateSubscriptionRequest(bool? cancelAtPeriodEnd = default(bool?), string taxId = default(string))
{
    this.CancelAtPeriodEnd = cancelAtPeriodEnd;
    this.TaxId = taxId;
}

这意味着我不能省略不需要的 taxId。但是,如果设置它必须是一个有效值。所以其余的 api 只是回复

您为“default_tax_rates[0]”传递了一个空字符串。我们假设空值是尝试取消设置参数;但是不能取消设置“default_tax_rates[0]”。您应该从您的请求中删除 'default_tax_rates[0]' 或提供一个非空值。

我想在不发送TaxId的情况下更新CancelAtPeriodEnd

关于如何使用 swagger codegen 进行这项工作的任何想法?

标签: c#restswagger-codegen

解决方案


推荐阅读