👻

TypeScriptでAPIクライアントをswaggerから自動生成する

2023/08/21に公開

swagger-typescript-apiを用いる

  • 「swagger-typescript-api」は、Swagger(またはOpenAPI)を使用して定義されたAPIから、TypeScriptで型安全なクライアントコードを生成するためのツールです体。

特徴

  • 型安全なコード生成: Swagger仕様から型情報を読み取り、TypeScriptの型定義を生成するため、APIを呼び出す際に型ミスマッチのリスクが低くなります。これにより、実行時エラーや不正確なリクエストの送信を防ぐことができます。
  • 自動生成されたエンドポイントメソッド: Swagger仕様に定義されたエンドポイントごとに、適切な入力パラメータと出力型を持つメソッドが生成されます。これにより、APIエンドポイントへのアクセスが簡単になります。
  • パラメータバリデーション: 生成されたクライアントコードは、リクエストパラメータのバリデーションを行います。これにより、不正なパラメータが送信されることを防ぐことができます。
  • 認証の統合: Swagger仕様に認証情報が含まれている場合、生成されたクライアントコードは認証に必要なヘッダーやトークンを適切に設定します。

使用方法

- Swagger(OpenAPI)を用意する
- swagger-typescript-apiツールを使用して、仕様ファイルからTypeScriptのクライアントコードを生成します。
- 生成されたコードをAPIクライアントとして使用する

用意したswaggerをswagger-typescript-apiに食わせる

  • 以下のコマンドをcliから実行する(スクリプトでも実行できます)
npx swagger-typescript-api -p (swaggerのパス) -o (出力先パス) -n (ファイル名)
npx swagger-typescript-api -p ./swagger.json -o ./src -n myApi.ts

使用方法ドキュメント

  • 自動生成のカスタムテンプレートを使用することができます。
    オプション
  • 実行例
npx swagger-typescript-api -p ./index.yaml -o ./src -n testApi.ts  

  • 指定したパスに型生成がされます。

Discussion