マイライブラリドキュメント

マルチルートサイドバー

flex-layout

  • Getting Started

  • Guides

  • Reference

typed-rx-http

  • Getting Started

  • Guides

  • Reference

global-rx-state

  • Getting Started

  • Guides

  • Reference

webflux-fe-dev-assistant

reactive-mongo-dsl

OpenAPI & サービスジェネレーター

Core HTTP clientとは別に提供されるオプションのNodeスクリプトです。OpenAPI/Swagger JSONからTypeScriptタイプとserviceファイルを生成する時のみ使用します。


オプション機能: Core使用に必要なし

一般的な@byeolnaerim/typed-rx-http、/nextまたは/rsocketのユーザーはこのスクリプトを実行しなくてもよく、openapi-typescriptをプロジェクトにインストールする必要もありません。

ts
openapi-typescript依存性の隔離

OpenAPIタイプ生成にはopenapi-typescript CLIが必要ですが、パッケージはこれを一般依存関係に入れません。typed-rx-http自体のdevDependencies.typescriptはTypeScript 6.0.3基準を維持し、OpenAPI auto nodeスクリプトでのみ別のnpx一時環境を使用します。

基本OpenAPI生成段階ではopenapi-typescriptと[email protected]を同時に実行するため、ユーザーのプロジェクトにインストールされたTypeScript/openapi-typescriptのバージョンを変更したり使用しません。

bash

必要に応じて全コマンドをopenApiTypescriptCommandに固定できます。

ts

または基本コマンドを構成するpackage versionだけを変更することもできます。

ts
まず: commonServiceFileが指すプロジェクトファイルを準備

generatorの例にcommonServiceFileが登場する前にこのファイルを理解する必要があります。commonServiceFileはファイルを作成するオプションではなく、generated serviceが共通HTTP関数をimportするプロジェクト所有ファイルのパスです。ファイル名はrxjsHttpService.ts、commonService.tsなど自由に決められます。

最小完成形全体コード

以下のファイルはcreateHttpClientをプロジェクトで一度生成し、callApiとcallApiStreamをgenerated serviceが再利用できるようにexportします。キャッシュやセッション認証が必要ない場合はこの構造から始められます。

rxjsHttpService.ts
ts
セッション/CSR/SSRキャッシュを含む全体コード

generated serviceがcallApiClientCacheまたはcallApiServerCacheを使用したり、Next.jsでリクエストごとのヘッダーとセッション認証を共通処理するには、次の全体形で拡張します。

rxjsHttpService.ts
ts
実行方式
ts
生成されるファイル

基本設定は以下のファイルを生成します。

text

apiUnionArrays.tsはOpenAPIスキーマenumだけでなく、query、path、header、cookieパラメータenumのreadonly定数配列も生成し、配列queryパラメータのitems.enumも処理します。


オプション: バックエンドSwaggerとプロジェクトcommonService接続

ここからはgeneratorを実際のプロジェクトに接続する例です。WebFlux/webflux-fe-dev-assistantはSwaggerを提供する一つの方法に過ぎず、必須依存性ではありません。

Swagger文書準備

SwaggerはSpringdoc、他のOpenAPIツール、または手動で作成したファイルでも構いません。WebFluxファンクショナルエンドポイントを使用する場合は webflux-fe-dev-assistantでSwagger文書を提供する方法も使用できます。

プロジェクトでオプションを明示して生成する例

バックエンドエンドポイント、保存するswagger.json、タイプ/service出力パスとcommonServiceFileをプロジェクト構造に合わせて明示できます。

generateSwagger.cjs
js

HTTPで文書を受け取れない環境では同じ出力オプションと共に generateSwaggerFromFileを使用できます。

commonServiceFileはimport対象パス

commonServiceFileは生成されたserviceがcallApi、callApiStreamとキャッシュラッパーをimportするプロジェクト所有ファイルのパスです。generatorがこのファイルを生成したり上書きするオプションではありません。

ApiBusinessService.ts
ts
プロジェクトで生成結果が配置される例
text

rxjsHttpService.tsのようにcommonServiceFileで指定した共用ファイルはプロジェクトが直接管理します。autoと@types/autoの下の結果は文書が変更されると再生成されます。

ファイル名と関数名の規則

サービスファイル名はURLの最初の2つのセグメントで、関数名は3つ目以降のセグメントで決まります。path variableはBy + PascalCase形式で関数名に含まれます。

GET /api/business/workplaces/search

ApiBusinessService.ts → workplacesSearch({ params })

GET /api/business/workplaces/{id}

ApiBusinessService.ts → workplacesById({ path })

GET /api/orders/history/search

ApiOrdersService.ts → historySearch({ params })

POST /oauth2/login

Oauth2LoginService.ts → post({ body })

生成関数の呼び出し引数
GeneratedServiceUsage.tsx
tsx

生成されたserviceのqueryパラメータkeyはparams、path variableはpath、request bodyはbodyです。生成関数内部でそれぞれqueryString、pathVariable、bodyのServiceArgumentsに変換されます。

© 2026 Byeolnaerim. 無断転載を禁じます。紹介プライバシーポリシー