aspida
概要
TypeScriptフレンドリーなHTTPクライアントの為のライブラリ
axios, fetchを使用したAPIリクエスト、レスポンスに型を付与できる
リクエストを文字列ではなくプロパティ経由で行える様になる
メモ
インストールは、axiosかkyかfetchかのどれかに合わせたものを利用する
↓axiosの場合だと以下の様な感じ
code:terminal
yarn add @aspida/axios
ビルド、設定ファイル等もaspida用に用意する必要がある
code:package.json
{
"script": {
"api:build": "aspida"
}
}
code:aspida.config.js
module.exports = {
input: "api",
outputEachDir: true,
openapi: { inputFile: 'apiパス' }
}
yarn apid: buildでtypeファイルが生成される
以下、解決できる課題
返り値の型がわからない。せっかく TypeScript を使っているのに any になってしまう
ジェネリクスで型指定することで解決できる
API の Path をベタ打ちしているので、typo しても気づかない
API の仕様が変わったとき、Grep して当該 API を使っている場所を探さないといけない
apiのpathのtypoやapiの仕様が変わった場合は、検知不可
→これをaspidaで改善することができる
参考
Aspidaに感動しちゃった件について
TS製型安全APIクライアントaspida入門@マナリンク
月間2万DL突破!REST APIを型安全にする最強のTypeScript製HTTPクライアントaspidaを始めよう