npm 包 swagger-model-generator-ts 使用教程

前言

随着 RESTful 接口的流行,Swagger 已经成为了前后端联调的重要工具。Swagger 的主要功能是定义 API 的文档和调用协议,这让前后端开发者能够更加便捷地进行联调。

在前端项目中,我们通常需要将后端定义的模型类转换为前端可用的 TypeScript 类。这时候就可以用到 swagger-model-generator-ts 这个工具。

swagger-model-generator-ts 是一个可从 Swagger 文档中获取模型并根据提供的代码生成器生成 TypeScript 类的 npm 包。本篇文章将介绍如何使用 swagger-model-generator-ts 进行模型代码生成。

准备工作

我们将使用官方提供的 Petstore 示例 API 文档进行测试。首先,确保我们已经安装了 Node.js。如果没有安装,可以从 Node.js 官网 下载最新版本进行安装。

然后,我们需要全局安装 swagger-codegen。打开命令行工具,执行下面的命令:

--- ------- -- ---------------

安装完成之后,使用以下命令生成 TypeScript 模型代码:

--------------- -------- -- ------------------------------------------ -- ---------------- -- -------------

上面的命令中,-i 指定接口文档 URL,-l 指定生成器类型,-o 指定输出目录,这里我们将输出到 ./petstore-ts 目录下。如果一切正常,我们会在 ./petstore-ts/models 目录下找到 Pet.ts、Order.ts、Tag.ts、Category.ts 等模型文件。

我们可以简要地看一下 Pet.ts 模型文件的内容:

------ --------- --- -
  ----- -------
  ----------- ---------
  ------- -------
  ------------ --------------
  -------- -----------
  ---------- --------------
-

------ ---- ------------- - ----------- - --------- - -------

------ --------- -------- -
  ------ -------
  -------- -------
-

------ --------- --- -
  ------ -------
  -------- -------
-

我们可以看到,Pet.ts 导出了三个接口类型:Pet、PetStatusEnum 和 Category。Pet 是一个包含多个属性的接口类型,PetStatusEnum 是一个枚举类型,Category 是 Pet 中 category 属性的接口类型。这些类型的定义能够帮助我们更准确地使用各种 API。

然而,在实际的项目开发中,我们可能需要编写更多的 TypeScript 类来处理这些模型。手动编写这些类不仅繁琐,而且容易出错。幸运的是,swagger-model-generator-ts 可以帮助我们自动生成这些类,从而节省时间并减少错误。

使用 swagger-model-generator-ts 生成 TypeScript 类

首先,在项目根目录下执行下面的命令来安装 swagger-model-generator-ts:

--- ------- -------------------------- ----------

安装完成后,我们就可以使用 swagger-model-generator-ts 来生成 TypeScript 类。我们需要先创建一个 TypeScript 文件,例如 petstore-model.ts:

------ - --- - ---- ---------------

----- ------------- -
  ------- ----- ----

  ------ --- ------ --- -
    ------ ----------
  -

  ------ --- -------- ---- -
    --------- - ----
  -
-

------ ------- --------------

在这个文件中,我们创建了一个类 PetstoreModel,它有一个私有属性 _pet,以及两个公共属性 get pet 和 set pet,这些属性都是从 models/Pet 中引入的。

接下来,在命令行中执行下面的命令:

--- -------------------------- -- ------------------------------------------ -- ---------------------- -- -----------------

其中,-i 参数用于指定 Swagger 文档路径,-o 参数用于指定生成代码的输出目录。-c 指定的是配置文件。

我们可以看到,执行该命令后,./petstore-models 目录下会生成一些 TypeScript 文件。

现在,我们可以使用 PetstoreModel 类来处理 Petstore API 的响应数据。使用 promise 方式获取 petstore 中存储的宠物的数据:

------ ------------- ---- -------------------
------ ----- ---- -------------

----- -------- - ---------------------------------

----- ------------- - --- ----------------

---------------------------
  -------------- -- ----------------
  ---------- -- -
    ----------------- - -----
    -------------------------------
  --
  ------------ -- ----------------------

在上面的代码中,我们使用了 PetstoreModel 类来处理 Petstore API 的响应数据。在 fetch 的返回数据中,我们可以直接将 JSON 数据传递给 set pet 并将其保存在 _pet 属性中。此后,我们就可以在代码其他位置使用 petstoreModel.pet 访问 Pet 类型的对象。

总结

本篇文章介绍了如何使用 swagger-model-generator-ts 工具,将 Swagger 文档中的模型代码生成为 TypeScript 类型。这一过程可以帮助您减少重复编写代码的工作量,同时提高代码质量。我们在使用浏览器调试过程中也可以使用 swagger-editor 工具方便的对 swagger 规范进行修改。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/600672593660cf7123b363a0


猜你喜欢

  • npm 包 Sideway 使用教程

    Sideway 是一个开源的前端 JavaScript 工具,在创建实时系统时使用它可以轻松实现 WebSocket 连接。它是一个基于 Node.js 的 npm 包, 可以在前端和后端中使用。

    4 年前
  • npm包 twitter-caption 使用教程

    如果你经常使用 Twitter,那么你一定知道那些有趣的、引人入胜的推文是如何被分享的。这些推文往往配有生动有趣的说明语句,这些语句被称为“标题”或“推文标题”。为了帮助前端开发人员也能够在自己的网站...

    4 年前
  • npm 包 three-trackballcontrols-es6 使用教程

    three-trackballcontrols-es6 是一个非常实用的 JavaScript 库,它可以为 Three.js 3D 游戏引擎提供 TrackballControls 的控制功能。

    4 年前
  • npm 包 randoma 使用教程

    介绍 在前端开发中,随机数是一个常见需求,例如在游戏中随机生成道具或者在数据分析中生成随机样本等。npm 上有一个名为 randoma 的开源包,可以帮助我们在 Node.js 和浏览器环境中生成高质...

    4 年前
  • npm 包 download-purescript 使用教程

    什么是 download-purescript download-purescript 是一个用来下载和安装 PureScript 的 npm 包。PureScript 是一种函数式编程语言,类似于 ...

    4 年前
  • npm 包 console-recorder 使用教程

    前言 在前端开发中,调试是必不可少的一个环节。而 console.log() 是最常用的调试方法之一。但是,当我们遇到一些复杂的问题时,需要查看多个页面或者长时间的操作才能复现,这时候再去一遍遍手动复...

    4 年前
  • npm 包 simple-js-pedersen-commitment 使用教程

    前言 在前端领域,我们可以使用许多 npm 包来实现各种功能。其中,simple-js-pedersen-commitment 是一个用于实现 Pedersen 承诺算法的 npm 包。

    4 年前
  • npm包simple-js-hash-store使用教程

    简介:npm包simple-js-hash-store是一个用于内存中hash表存储的JavaScript工具库。它为开发者提供了简单易用的接口来处理键值对(key-value)数据的存储和读取。

    4 年前
  • npm 包 leadoff 使用教程

    前言 前端开发离不开各种工具库的支持,而 npm 包就是最常用的一种工具。在 npm 上有很多非常优秀的开源工具库,其中包括了各种常用的 JavaScript 工具。

    4 年前
  • npm 包 cwg-json-query 使用教程

    简介 cwg-json-query 是一个在前端开发中广泛使用的 npm 包,它可以帮助开发者在 JSON 数据中进行快速查询和筛选,从而提高开发效率和代码质量。 使用方法 安装 在项目根目录下使用 ...

    4 年前
  • npm 包 xy-pool 使用教程

    在前端开发中,我们经常需要从服务器获取数据,包括图片、视频、音频等等。为了提高网站的性能和用户体验,我们通常需要将这些资源缓存在本地,并在需要的时候从本地获取。这时就需要一个好用的资源池来管理这些资源...

    4 年前
  • npm 包 huijiewei-ion-rangeslider 使用教程

    在前端开发中,有时候需要进行数据的筛选或者滑动条的选择等场景,这时候可以使用一款叫做 huijiewei-ion-rangeslider 的 npm 包来实现。本文将详细介绍该 npm 包的使用教程以...

    4 年前
  • npm包hyron使用教程

    什么是hyron? hyron是一个基于Node.js的web框架,支持RESTful API和WebSocket。它可以使得前端开发人员通过一种简单易用的方式,快速构建复杂的web应用程序和API。

    4 年前
  • npm 包 quick-canvas 使用教程

    Quick-canvas 是一款基于 HTML5 Canvas 的快速绘图工具,使用方便,性能优秀。本文将详细介绍 Quick-canvas 的使用方法,包括如何安装、调用和常见方法的介绍,希望能够为...

    4 年前
  • npm 包 @silkjs/silk 使用教程

    在前端开发中,我们常常需要用到一些工具或者库来简化我们的开发工作。npm 包就是其中一个非常常见的工具。今天我们要介绍的是一个非常实用的 npm 包,@silkjs/silk。

    4 年前
  • npm 包 package-json-type 使用教程

    npm 是前端开发中广泛使用的包管理器,它提供了一个巨大的生态系统,其中包括了许多有用的包,可供开发者使用。本文将介绍一个非常实用的 npm 包:package-json-type。

    4 年前
  • npm 包 usetoaster 使用教程

    简介 NPM包是Node.js的包管理器,它能够使用有用、可重用的代码来实现更快、更轻松地编写代码。这篇文章将介绍如何使用usetoaster这个npm包,它是一个轻量级的JavaScript库,能够...

    4 年前
  • npm 包 awe-draft-js 使用教程

    在前端开发中,富文本编辑器是一个常用的功能。常规的富文本编辑器往往过于重量级,不适合用于小型项目或单纯的功能需求。这时候,轻量级的 awe-draft-js 包就变得尤为重要了。

    4 年前
  • npm包@mhansen1/cloud-config-client使用教程

    介绍 第一步是介绍npm包@mhansen1/cloud-config-client的作用和用途。本模块是一个用于Node.js应用程序中读取Spring Cloud Config服务器上的配置文件的...

    4 年前
  • npm包@cic-digital/node-dao-db2使用教程

    随着Node.js的普及,前端领域的开发越来越依赖于各种npm包,这些包可以大幅提高我们的代码复用率、效率和可维护性。本文将介绍一个在Node.js中使用数据库连接池访问DB2数据库的npm包@cic...

    4 年前

相关推荐

    暂无文章