使用npm nswag从包含OData值的Swagger .json文件生成TypeScript文件

时间:2017-06-28 16:27:44

标签: odata swagger nswag

我使用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值兼容?

1 个答案:

答案 0 :(得分:0)

这已在NSwag v11.3

中修复