用于 Swagger/OpenAPI API 规范的 Reactjs 客户端

IT技术 reactjs typescript swagger flowtype swagger-codegen
2021-04-26 19:58:39

背景

使用Swagger Editor,我为我的 API 创建了一个规范。我看到 Swagger 在他们的 Swagger 编辑器中还提供了一个“生成客户端”选项(可能使用Swagger Codegen)。

客观的

我想生成一个客户端并在我的 React 应用程序中使用它(使用create-react-app 创建),并且最好享受一些静态类型功能(当前使用flow)。

目前

Swagger Editor 中的所有选项似乎都不起作用:

  • javascript- 提供了一个 vanilla 节点module,您需要将npm install其作为项目的依赖项。现在,这不仅没有任何类/类型,而且还失败: Uncaught Error: Cannot find module "ApiClient" at webpackMissingModule (index.js:17) at exports.ApiClient (index.js:17) at Object.<anonymous> (index.js:22) at __webpack_require__ (bootstrap 75f547b…:555) at fn (bootstrap 75f547b…:86) at new Index (index.js:87) at ReactCompositeComponent.js:295 at measureLifeCyclePerf (ReactCompositeComponent.js:75) at ReactCompositeComponentWrapper._constructComponentWithoutOwner (ReactCompositeComponent.js:294) at ReactCompositeComponentWrapper._constructComponent (ReactCompositeComponent.js:280)
  • typescript-* 选项与 js 不兼容,我不需要知道如何/想要将 TypeScript 添加到我的项目中。
  • *-angular 选项当然无关紧要。

方法

  • 生成.ts文件并将其转换为flow. 如何??
  • 手动将生成的.js文件添加到我的项目中。当前不起作用,因为生成的代码带有自己的依赖项。
  • 将 TypeScript 添加到我的项目中(我应该替换flow吗?)。如何??

谢谢

1个回答

在生成器使用动态实现(例如swagger-js)之前,有一个简单的解决方案