什么是 op-tsoa?
op-tsoa 是一个开源的 Typescript 框架,可以让你更方便地创建 REST API。
这个框架可以生成 OpenAPI、Swagger 和 TypeScript client 代码。此外,它还自动创建测试数据模拟,以及自动生成文档。
安装
首先需要安装 Node.js 和 npm。
在终端中,输入以下命令安装 op-tsoa:
npm install -g op-tsoa
创建项目
创建新项目的指令如下:
op-tsoa create my-api
这会生成一个基于 op-tsoa 的项目结构,包括以下文件:
src/controllers
——包含 API 控制器的文件夹。src/services
——包含服务层代码的文件夹。src/models
——包含数据模型的文件夹。dist
——包含由 TypeScript 编译器生成的 JavaScript 代码和静态文件。swagger.json
——包含 OpenAPI 规范的 Swagger JSON 文件。tsconfig.json
——TypeScript 配置文件。
创建控制器
在 src/controllers
下创建一个新文件 my-controller.ts
,然后添加以下内容:
-- -------------------- ---- ------- ------ - ------ ----------- --- - ---- ---------- ------ - --------- - ---- ------------------------- ------ - ------- - ---- --------------------- ------------ ------ ----- ------------ ------- ---------- - ------------------- -------- ---------- ---------- - -------- - ------------ ------ ----- ----------- -------- ---------------- - ------ --------------------------- - -
我们使用一个装饰器 @Route
来指定哪些控制器应该处理来自客户端的 HTTP 请求。这里我们设置 my
作为根路由。
使用更多不同的方法来引导客户端请求时,我们使用另一个装饰器 @Get
。在这个例子中,我们将给客户端返回一个指定 Id 的 my model。
创建模型和服务
下一步是创建一个模型,并创建我的服务以处理业务逻辑。我们假设我们要处理的数据为:
export interface MyModel { id: number; title: string; description?: string; }
现在,我们创建了一个以下服务文件 my-service.ts
,来存储实现相关逻辑:
-- -------------------- ---- ------- ------ - ------- - ---- --------------------- ------ ----- --------- - ------- -------- -------- --------- - - - --- -- ------ --- ----- -- -- - --- -- ------ --- ----- --- ------------ --- ----------- -- - -- ------ ----- ----------- -------- ---------------- - ------ ------------------- -- ---- --- ---- - -
生成代码和文档
我们已经创建了控制器、模型和服务,现在可以生成代码和文档。
生成静态文件
使用以下命令生成静态文件:
op-tsoa build
这将编译 TypeScript 代码和 static assets 并把它们放在 dist
文件夹中,你可以将其发布到任何 WEB 服务器上。
生成客户代码
使用以下命令生成客户端的 TypeScript 定义:
op-tsoa client
这将在 generated/
文件夹下生成一个模块,dist
文件夹下则会生成 JavaScript 文件。
生成 Swagger 文档
使用以下命令生成 Swagger JSON 文件:
op-tsoa spec
这将生成一个 Swagger JSON 文件 swagger.json
,它包含了所有 API 规范信息。
运行示例
在这里,我们抽出一个示例代码来运行测试前面所操作的代码。
可以先创建文件夹 my-server
,然后将前面的代码都复制进来,
现在,在终端中输入以下命令:
npm install express body-parser --save npm install @types/express @types/body-parser --save-dev
现在创建文件 app.ts
:
-- -------------------- ---- ------- ------ ------------------- ------ - -- ------- ---- ---------- ------ - -- ---------- ---- -------------- ------ - -- ---- ---- ------- ------ - -------------- - ---- --------------------- ----- --- - ---------- ------------------------------- --------- ---- ---- --------------------------- ------------ ----------------------------------- ------------- --------------- ------------------ ---------------- -- -- - ------------------- ------- -- ------------------------ ---
这将启动一个 Express 服务器,开放了静态文件目录 dist
和路由 URL /api
,使你可以测试你所编写的控制器。
最后,在终端中输入以下命令:
npm start
这将启动本地服务器,并打开浏览器到 http://localhost:3000 以浏览开放的 dist
文件夹。在 /api/my/2
页面中,你应该可以看到我们设计的 MyModel。
总结
现在,你已经了解了如何使用 npm 包 op-tsoa 创建 REST API,并从多个方面学习了它的实现细节。
希望此文能够为所有需要此类信息的前端开发人员提供帮助。感谢阅读!
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6005672a81e8991b448e3acc