前提
なろう小説APIをJavaScriptから扱いたいと考えています。
APIの方でgzipとyamlの利用が推奨されているため、それらを扱いたいと思います。
やってみたこと
fetchでデータを取ってきてzlibで解答を試みましたがうまくいきませんでした。
TypeScript
1# apiの出力データをyaml形式、gzipで取得するURL 2const url = 'https://api.syosetu.com/novelapi/api/?gzip=5&out=yaml'; 3fetch(url) 4 .then((res) => res.blob()) 5 .then((blob) => blob.text()) 6 .then((text) => text.toString()) 7 .then((gzip) => { 8 const yaml = gunzipSync(gzip); 9 console.log(yaml.toString()); 10 });
エラーメッセージ
TypeScript
1Error: incorrect header check 2 at Zlib.zlibOnError [as onerror] (node:zlib:190:17) 3 at processChunkSync (node:zlib:456:12) 4 at zlibBufferSync (node:zlib:178:12) 5 at syncBufferWrapper (node:zlib:791:14) 6 at D:\program\narouapi\src\typescript\index.ts:14:28 7 at processTicksAndRejections (node:internal/process/task_queues:96:5) { 8 errno: -3, 9 code: 'Z_DATA_ERROR' 10} 11
考えられる原因
ブラウザでダウンロードしたファイルの解凍はうまくいっているのでfetchでデータを取ってくるところでうまくいっていないのかなぁと思っているのですが、原因がよくわかりません。
バージョンなど
Node: v16.14.0
"@types/node-fetch": "^2.6.2",
"node-fetch": "^2.6.7",
"ts-node": "^10.9.1",
"typescript": "^4.9.4",
"zlib": "^1.0.5"

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/12/14 06:03