NestJS入门及实战(一)NestJS入门、RESTful API

NestJS是一个基于TypeScript的Node.js框架,类似Java的Spring,用于创建可扩展的服务器端应用。它支持依赖注入和装饰器,提供了配套功能如授权、文档和GraphQL。相比于Express,NestJS更注重结构和模块化。文章还介绍了RESTfulAPI的概念,包括HTTP动词(GET,POST,PUT,PATCH,DELETE)和URL设计原则。
摘要由CSDN通过智能技术生成

NestJS是什么

Nest (NestJS) 是一个用于构建高效、可扩展的 Node.js 服务器端应用程序的开发框架

  • JS 届的 Spring 框架
  • 支持 TypeScript 语言
  • 构建高效可伸缩
  • 装饰器风格
  • 模块加载采用依赖注入 IOC 方式 (Spring 与 AngularJS)
  • 配套功能齐备(鉴权、文档、微服务、CLI、Graph QL)

可能Node大家了解最多的后端框架是express,那么这里通过图来进行对比

Express 对比 NestJS

在这里插入图片描述

新建一个NestJS

全局安装nest脚手架
npm i -g @nestjs/cli

创建nest项目
nest new demo-server

包管理工具我们选择pnpm
在这里插入图片描述
完成是这样的
在这里插入图片描述
启动服务
在这里插入图片描述
目录结构

src
 ├── app.controller.spec.ts
 ├── app.controller.ts  # 控制器
 ├── app.module.ts      # 模块定义
 ├── app.service.ts     # service层
 └── main.ts            # 入口

在这里插入图片描述
在这里插入图片描述

我们现在直接修改内容是无法更新的,因为我们启动的是start,若是我们想要实时更新,我们需要启动strat:dev

在这里插入图片描述
我们现在去更改内容
在这里插入图片描述
现在就是实时变化的了
在这里插入图片描述

RESTful API

表征状态传输 (REST) 缩写:Representational State Transfer 是一种软件架构,决定了 API 的工作条件。REST 最初作为管理复杂网络(例如互联网)上的通信的指南而建立。您可以使用基于 REST 的架构为高性能和可靠的大规模通信提供支持。您可以轻松应用和修改此种架构,为任何 API 系统带来可见性和跨平台可能性。

起源

REST这个词,是Roy Thomas Fielding在他2000年的博士论文中提出的。

Fielding是一个非常重要的人,他是HTTP协议(1.0版和1.1版)的主要设计者、Apache服务器软件的作者之一、Apache基金会的第一任主席。所以,他的这篇论文一经发表,就引起了关注,并且立即对互联网开发产生了深远的影响。

Representational State Transfer 表现层状态转化

= Resources ( 省略 ) + Representational (表现) + State Transfer (状态转换)

  • 资源 Resources

    • 网络上的实体, 一段文本、一张照片、一张图片
  • 表现层 Representation

    • 我们把"资源"具体呈现出来的形式,叫做它的"表现层"(Representation)。
    • 用户应该是 xml格式 、json格式、html格式
    • 应该在HTTP请求的头信息中用Accept和Content-Type字段指定,这两个字段才是对"表现层"的描述。
  • 状态转化 State Transfer

    • 如果客户端想要操作服务器,必须通过某种手段,让服务器端发生"状态转化"(State Transfer)。而这种转化是建立在表现层之上的,所以就是"表现层状态转化"。
      • HTTP动词:表示一个动作
        • GET:读取(Read)
        • POST:新建(Create)
        • PUT:更新(Update)
        • PATCH:更新(Update),部分更新
        • DELETE:删除(Delete)

URL设计

  • 宾语:表示动作的目标对象
  • 是一个名词
// 推荐
GET /users
// 不推荐
GET /getUsers

通常是复数

// 推荐
GET /users
GET /users/1
// 不推荐
GET /user
GET /user/1

避免多级

// 推荐
GET /authors/12?categories=2
// 不推荐
GET /authors/12/categories/2

经典RESTAPI

github API

生成一套Restful风格接口

nest g resource xxx

这里我生成一个user在这里插入图片描述

在这里插入图片描述
报错,不用管,直接pnpm i就行,这是nest脚手架的问题
在这里插入图片描述

在这里插入图片描述
生成成功
在这里插入图片描述
我们可以直接访问
在这里插入图片描述

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

林多多@

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值