TypeScriptにおけるOpenAPI関連のエコシステムについて
#OpenAPI #TypeScript
コード生成
OpenAPI Generator
TypeScriptに限らず、OpenAPIドキュメントから様々な言語向けにAPIクライアントを生成してくれます
おそらく一番有名なツール
実行にはJavaが必要
openapi-typescript
OpenAPIドキュメントからTypeScriptの型定義を生成してくれるnpmパッケージ
APIクライアントを生成する仕組みは提供されていないため、必要な場合はopenapi-typescriptの作者の方が開発しているopenapi-fetchなどとの併用も検討するとよいかもしれません
工夫することで、バックエンドのコントローラやmswハンドラを型安全に記述するためなど、様々なことができそうです
fets
fetsを使用して実装したAPIからのOpenAPIドキュメントの生成やOpenAPIドキュメントからのクライアントの作成などをサポートしてくれるようです
Kiota
Microsoft製でTypeScript以外にも様々な言語がサポートされているようです
How is this positioned in relation to AutoRest? #1709によると、下記のAutoRestを置き換えるものではない模様
AutoRest
こちらもMicrosoft製
What is the relationship between Autorest and Kiota #4800
TypeSpec
Microsoft製
OpenAPI Spec を出力できる DSL、TypeSpec の実践例 - ドワンゴ教育サービス開発者ブログ
openapi-typescript-code-generator
OpenAPIドキュメントからTypeScriptの型定義やAPIクライアントを自動生成してくれるライブラリ
Portman
OpenAPIドキュメントからPostmanのコレクションを生成してくれるCLIツール
Newmanを使ったテストの実行などもサポート
Swagger(v2)ドキュメントからPostmanコレクションを生成したいときは、一度swagger2openapiなどのツールを噛ませる必要がありそう
APIドキュメントの生成
Redoc
OpenAPIの定義からAPIドキュメントをHTML形式で生成してくれるパッケージ
Redocly CLI
Redocを使用したAPIドキュメントの生成やlintなどをサポート
バックエンド
express-openapi-validator
fastify-swagger
@nestjs/swagger
chanfana
Cloudflare製
Honoとitty-routerをサポート
Zodで型を定義できる
スタブ
Prism
OpenAPIドキュメントを元に、スタブサーバーとして機能してくれるツール
Faker.jsを使用した動的なレスポンスの生成もサポートされています (Dynamic Response Generation with Faker)
Linter
Configurable and extensible validator/linter for OpenAPI documents
Redocly CLI
Redocを使用したAPIドキュメントの生成やlintなどをサポート