良いREST APIクライアントの設計というものに関心があり、GitHub社の公式REST APIクライアントである @octokit/rest のコードを読んでみたメモです。 (ドキュメントは https://octokit.github.io/rest.js/) 知りたかったこと 漠然と、こういう疑問に対してなんらか知見が得られればいいなーと思っていました。 全体的なディレクトリ構成やレイヤー。どういうふうに責務を分けているか 各APIエンドポイントに対応するメソッドはどのように実装している?命名ルールやnamespaceなどの分割基準は? Node.js環境とブラウザ環境を両方サポートするために、環境の差異をどのように吸収しているのか エラーハンドリングはどうしてる? テストはどうしてる? 何に対してテストを書いているか。リクエスト部分のモックはどうしているか 調べてわかったことメモ