【发布时间】:2017-06-28 16:27:44
【问题描述】:
我正在使用 npm nswag 使用 swaggerToTypeScriptClient 代码生成器从 Swagger .json 文件生成 TypeScript 文件。
遇到 JSON 中包含的 OData 属性时会出现问题。生成接口时,TypeScript 会抛出错误,因为它无法识别 OData 属性值中的“@”。
这是原始 Swagger .json 的示例:
"Swashbuckle.OData.ODataResponse[System.Collections.Generic.List[Shadow.DataLayer.ReleaseBatchs]]": {
"type": "object",
"properties": {
"@odata.context": {
"type": "string"
},
"value": {
"type": "array",
"items": {
"$ref": "#/definitions/Shadow.DataLayer.ReleaseBatchs"
}
}
}
}
这是nswag swaggerToTypeScriptClient生成的对应TypeScript:
export interface ReleaseBatchs {
@odata.context?: string | undefined;
value?: ReleaseBatchs2[] | undefined;
}
这会引发错误,因为它不喜欢属性中的“@”。
如果生成的代码将属性用引号括起来,它会起作用,如下所示:
export interface ReleaseBatchs {
"@odata.context"?: string | undefined;
value?: ReleaseBatchs2[] | undefined;
}
有没有办法让 swaggerToTypeScriptClient 将这些属性用引号括起来?还是让它与 OData 值兼容?
【问题讨论】:
-
我们必须在这里解决这个问题:github.com/RSuter/NJsonSchema/blob/master/src/… 我很快就会调查这个...
-
好的。谢谢你。我创建了一个拉取请求。