0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ofetchのオススメ

0
Posted at

ofetch

Pooya Parsa (pi0)氏により、UnJSの下、開発されているデータ・フェッチング ライブラリです。

WEB標準のAPIであるfetchを自然な形で拡張していて、fetchを理解していれば理解が容易で、fetchからの乗り換えも簡単です。

Axios / Ky etc、データ・フェッチング・ライブラリの多くが、fetchとは異なる構文となっています。(Axios / Kyは似た感じですが、独自構文の採用が...。)

実装

fetchを利用する形で実装されています。

豊富な採用実績

Nuxtでv3.0.0から採用(ビルトイン)されている採用実績の豊富なデータ・フェッチング ライブラリです。

Nuxt3以降にあるビルトイン関数 useAsyncData/useFetch/useLazyFetch がofetchを利用していて、
Nuxt3以降のデータ・フェッチングの基盤となっています。

フレームワーク非依存

fetchにデータ・フェッチングの観点で最低限?必要な拡張のみを行っています。

単体での完結を意図したライブラリではなく、ライブラリ/フレームワークから利用されることを想定し(設計され)ています。

「大規模かつ長期間に亘り運用できる安全なコードを書けること」はofetchが担保すべきモノではなく、ofetchの利用側(ライブラリ etc)が担保すべきモノ、という設計です。

それを考慮している利用側がの一つがNuxt3以降ビルトインの useFetch/useAsyncData です。

詳細

v2

現在、開発途上で、αステージです。

v1は destr / node-fetch-native / ufo に依存していますが、v2では、内部実装の見直しにより、これらのライブラリへの依存が取り除かれ、スリムになる予定です。

node-fetch-native

Node.js環境におけるfetchの互換性を最適化するためのラッパーライブラリです。

自動的なネイティブ優先:

実行環境のNode.jsバージョンを確認し、ネイティブのfetch(Node.js v18以降)が利用可能な場合はそれを使用し、利用できない場合はポリフィル(node-fetch)へフォールバックします 。

プロキシ対応:

ネイティブのfetchでは標準で対応しにくいHTTPプロキシのサポートを、シンプルなAPIで追加できるように設計されています 。

ランタイム非依存:

Node.jsだけでなく、Bun / Deno / Edgeランタイム(Cloudflare Workers etc)でも動作するよう設計されており、ライブラリ開発者が環境を気にせずfetchを扱えるようにしています。

UnJS

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?