OpenAPIをexpressで使用する

Open APIとは

Open APIとはRESTful APIを記述するためのフォーマットです。yaml形式などで記述でき、記述すると以下のように定義したAPIをWeb上で閲覧することができます。

最近では、このyamlファイルから、TypeScriptの型を生成する仕組みもあり、自分は https://github.com/horiuchi/dtsgenerator を使わせてもらっています。

これは、OpenAPIの仕様にそって、yamlファイルからd.tsを吐き出してくれるライブラリで非常に便利なのですが、expressをtsで書こうと思った時に、expressにどうやって生成した型を繋こもうかとても悩みました。

そこで今回、さらに、dtsgeneratorで生成したコードを使って、express用のTypeScriptファイルを生成するジェネレーターを作りました。
express-ts-generatorです。

使い方

まずはインストール

$ npm install dtsgenerator express-ts-generator --save-dev

openapi.ymlを指定してファイル生成

$ npx dtsgen openapi/openapi.yaml -o ./src/@types/openapi.d.ts && npx apigen -s ./src/@types/openapi.d.ts -d ./src/@types/api.ts

tsconfig.jsonで、express-ts-generatorを指定


}

型を利用

import  from './types/api';

export const Post : SomeController.Post = async (
request,
response
): Promise<void> => ;

export const Get: SomeController.Get = async (
request,
response
): Promise<void> => ;

よかったらgithubにスターいただけると嬉しいです!


Home