我的文档库

多根目录侧边栏

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客户端分开提供的可选Node脚本。仅在从OpenAPI/Swagger JSON生成TypeScript类型和服务文件时使用。


可选功能:不需要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自动节点脚本仅使用单独的npx临时环境。

在基本OpenAPI生成阶段,openapi-typescript和[email protected]将一起运行,因此不会更改或使用用户项目中安装的TypeScript/openapi-typescript版本。

bash

如有需要,可以将整个命令固定为openApiTypescriptCommand。

ts

或者只更改构成基本命令的package版本。

ts
首先:准备commonServiceFile指向的项目文件

在generator示例中commonServiceFile出现之前,必须先理解此文件。commonServiceFile不是创建文件的选项,而是生成的服务导入公共HTTP函数的项目拥有文件的路径。文件名可以自由选择,如rxjsHttpService.ts、commonService.ts等。

最小完成型完整代码

以下文件在项目中创建一次createHttpClient,并导出generated service重用callApi和callApiStream。如果不需要缓存或session auth,可以从此结构开始。

rxjsHttpService.ts
ts
包含Session/CSR/SSR缓存的完整代码

如果generated service使用callApiClientCache或callApiServerCache,或者在Next.js中共同处理请求的header和session认证,则扩展为以下完整形式。

rxjsHttpService.ts
ts
执行方式
ts
生成的文件

默认设置会生成以下文件。

text

apiUnionArrays.ts不仅生成OpenAPI schema enum,还生成query、path、header、cookie参数enum的只读常量数组,并处理数组query参数的items.enum。


可选:将后端Swagger与项目commonService连接

从这里开始是将生成器实际连接到项目的示例。WebFlux/webflux-fe-dev-assistant只是提供Swagger的一种方式,并不是必需的依赖。

准备Swagger文档

Swagger 可以是 Springdoc、其他 OpenAPI 工具或手动编写的文件。如果使用 WebFlux 功能端点, webflux-fe-dev-assistant也可以使用提供Swagger文档的方式。

在项目中明确选项生成的示例

可以根据项目结构明确后端endpoint、保存的swagger.json、类型/service输出路径和commonServiceFile。

generateSwagger.cjs
js

在无法通过HTTP接收文档的环境中,可以使用相同的输出选项。 generateSwaggerFromFile可以使用。

commonServiceFile是导入目标路径

commonServiceFile是生成的服务导入callApi、callApiStream和缓存包装器的项目拥有文件的路径。生成器不是生成或覆盖此文件的选项。

ApiBusinessService.ts
ts
项目中生成结果的示例
text

指定为commonServiceFile的公共文件如rxjsHttpService.ts由项目直接管理。auto和@types/auto下的结果在文档更改时会重新生成。

文件名和函数名规则

服务文件名由URL的前两个段决定,函数名由第三个及之后的段决定。路径变量以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

生成的服务的query参数key为params,路径变量为path,请求体为body。在生成函数内部,分别转换为queryString、pathVariable、body的ServiceArguments。

© 2026 Byeolnaerim. 保留所有权利.介绍隐私政策