Posted at

swagger.jsonからd.tsを作るsw2dtsを作った

More than 3 years have passed since last update.

最近自分の専門がよくわからなくなってきてるりんごです。

SwaggerでAPI情報を記述するJSON(便宜的にswagger.jsonと呼んでます)から、TypeScriptで使用する型定義ファイル(*.d.ts)を生成するツールを作りました。

https://www.npmjs.com/package/sw2dts

中の実装はswagger.jsonをdtsgeneratorが食える形に整形しているだけです。


使用例

$ sw2dts swagger.json > model.d.ts


swagger.json

{

"swagger": "2.0",
〜略〜
"definitions": {
"Foo": {
"type": "object",
"properties": {
"id": {
"format": "int64",
"type": "string"
},
"bar": {
"$ref": "#/definitions/Bar"
},
"name": {
"type": "string"
},
"count": {
"format": "int32",
"type": "integer"
},
"ids": {
"type": "array",
"items": {
"format": "int64",
"type": "string"
}
}
}
},
"Bar": {
"type": "object",
"properties": {
"id": {
"format": "int64",
"type": "string"
}
}
}
}
〜略〜
}


model.d.ts

export interface Bar {

id?: string; // int64
}
export interface Foo {
id?: string; // int64
bar?: Bar;
name?: string;
count?: number; // int32
ids?: string /* int64 */ [];
}