Skip to content

openapi-fetch について

プロジェクトの目標

  1. 型は厳密で、最小限のジェネリクスで OpenAPI スキーマから自動的に推論されるべきです。
  2. ネイティブの Fetch API を尊重しつつ、(await res.json() などの)ボイラープレートを削減すること。
  3. 可能な限り軽量で高性能であること。

比較

vs. Axios

Axios は、OpenAPI スキーマに対して自動的に型チェックを行うことはできません。さらに、それを実現する簡単な方法もありません。Axios は、インターセプターや高度なキャンセルなど、openapi-fetch よりも多くの機能を備えています。

vs. tRPC

tRPC は、バックエンドとフロントエンドが両方とも TypeScript (Node.js) で書かれているプロジェクト向けです。openapi-fetch はユニバーサルであり、OpenAPI 3.x スキーマに従う任意のバックエンドと連携することができます。

vs. openapi-typescript-fetch

openapi-typescript-fetch は、openapi-fetch よりも前に開発され、目的はほぼ同じですが、主に構文が異なります(つまり、選択は好みに依存します):

  • openapi-typescript-fetch は非 OK 応答の場合に例外を投げます(そのため、try/catch でラップする必要があります)。これに対して openapi-fetch は Fetch API 仕様に従い、例外を投げません。
  • openapi-typescript-fetch の構文は冗長で、チェーン(.path(…).method(…).create())に依存します。

vs. openapi-typescript-codegen

openapi-typescript-codegen はコード生成ライブラリであり、openapi-fetch の「コード生成なし」アプローチとは根本的に異なります。openapi-fetch は、ビルド時に静的な TypeScript 型チェックを行い、クライアントの負担を増やさず、ランタイムでのパフォーマンスに影響を与えません。従来のコード生成は、クライアントの負担を増やし、ランタイムを遅くする何百(あるいは何千)もの異なる関数を生成します。

vs. Swagger Codegen

Swagger Codegen は Swagger/OpenAPI の元祖のコード生成プロジェクトであり、他のコード生成アプローチと同様にサイズの膨張やランタイムのパフォーマンス問題があります。さらに、Swagger Codegen は Java ランタイムが必要ですが、openapi-typescript/openapi-fetch はネイティブの Node.js プロジェクトとしてその必要がありません。

貢献者

これらの素晴らしい貢献者がいなければ、このライブラリは存在しなかったでしょう:

Drew Powers

Drew Powers

Nadeem Bitar

Nadeem Bitar

Emory Petermann

Emory Petermann

Tyler Fletcher

Tyler Fletcher

Nicklos Holik

Nicklos Holik

Nick Caballero

Nick Caballero

Hadrian de Oliveira

Hadrian de Oliveira

Percy Ma

Percy Ma

psychedelicious

psychedelicious

Adam K

Adam K

Marco Muser

Marco Muser

Evgenii Perminov

Evgenii Perminov

alex

alex

Mike Darwish

Mike Darwish

Felix Kaechele

Felix Kaechele

Hongkun

Hongkun

Mike Stop Continues

Mike Stop Continues

maurice

maurice

Ville Penttinen

Ville Penttinen

Armand Abric

Armand Abric

Lev Chelyadinov

Lev Chelyadinov