以下の内容はhttps://koko206.hatenablog.com/entry/2024/10/16/232820より取得しました。


openapi-typescript で is not valid JSON のエラー

この記事では、openapi-typescript を使って TypeScript クライアントを生成した際に遭遇した「Uncaught (in promise) SyntaxError: Unexpected token "xxx"... is not valid JSON」エラーと、その解決方法について紹介します。

対象コード

openapi

paths:
  /download:
    post:
      operationId: downloadSomething
      responses:
        '200':
          description: 企業情報の一覧を CSV 形式で返す。
          content:
            text/csv:
              schema:
                type: string
                format: binary

生成コード

export interface components {
  ...
  downloadSomething: {
    responses: {
      200: {
        content: {
          "text/csv": string;
        };
      };
    };
  };

リクエスト方法

const { data, error } = await client.POST('/download', {})

修正方法

以下のように fetchOption の parseAs をつけると解決します。

const { data, error } = await client.POST('/download', {
  parseAs: 'text',
})

どうやら、json 以外のレスポンスに対しては明示的に parse 方法を指定する必要があるらしいです。

おわりに

生成コードに content: "text/csv" ってあるんだから、それを元に解釈してほしい。。。




以上の内容はhttps://koko206.hatenablog.com/entry/2024/10/16/232820より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14