小满nestjs(第七章 RESTful 风格设计)

简介: RESTful 是一种风格,在RESTful中,一切都被认为是资源,每个资源有对应的URL标识. 不是标准也不是协议,只是一种风格。当然你也可以不按照他的风格去写。

RESTful 是一种风格,在RESTful中,一切都被认为是资源,每个资源有对应的URL标识.


不是标准也不是协议,只是一种风格。当然你也可以不按照他的风格去写。


1.接口url


传统接口


http://localhost:8080/api/get_list?id=1


http://localhost:8080/api/delete_list?id=1


http://localhost:8080/api/update_list?id=1


RESTful接口


http://localhost:8080/api/get_list/1 查询 删除 更新


RESTful 风格一个接口就会完成 增删改差 他是通过不同的请求方式来区分的


查询GET


提交POST


更新 PUT PATCH


删除 DELETE


94ffe4f1c441413499126c3cece14f22.png


2.RESTful 版本控制


一共有三种我们一般用第一种 更加语义化


URI Versioning 版本将在请求的 URI 中传递(默认)
Header Versioning 自定义请求标头将指定版本
Media Type Versioning 请求的Accept标头将指定版本


import { NestFactory } from '@nestjs/core';
import { VersioningType } from '@nestjs/common';
import { AppModule } from './app.module';
async function bootstrap() {
  const app = await NestFactory.create(AppModule);
  app.enableVersioning({
    type: VersioningType.URI,
  })
  await app.listen(3000);
}
bootstrap();


然后在user.controller 配置版本


Controller 变成一个对象 通过version 配置版本


import { Controller, Get, Post, Body, Patch, Param, Delete, Version } from '@nestjs/common';
import { UserService } from './user.service';
import { CreateUserDto } from './dto/create-user.dto';
import { UpdateUserDto } from './dto/update-user.dto';
@Controller({
  path:"user",
  version:'1'
})
export class UserController {
  constructor(private readonly userService: UserService) {}
  @Post()
  create(@Body() createUserDto: CreateUserDto) {
    return this.userService.create(createUserDto);
  }
  @Get()
  // @Version('1')
  findAll() {
    return this.userService.findAll();
  }
  @Get(':id')
  findOne(@Param('id') id: string) {
    return this.userService.findOne(+id);
  }
  @Patch(':id')
  update(@Param('id') id: string, @Body() updateUserDto: UpdateUserDto) {
    return this.userService.update(+id, updateUserDto);
  }


f703fe68dcac4daaa6fd309e0e92419f.png


3.Code码规范


200 OK


304 Not Modified 协商缓存了


400 Bad Request 参数错误


401 Unauthorized token错误


403 Forbidden referer origin 验证失败


404 Not Found 接口不存在


500 Internal Server Error 服务端错误


502 Bad Gateway 上游接口有问题或者服务器问题

目录
相关文章
|
2月前
|
API
07_Restful风格接口设计
07_Restful风格接口设计
36 4
|
4月前
|
JSON 数据格式
基于RestFul风格编程示例
基于RestFul风格编程示例
29 0
|
前端开发
小满nestjs(第十章 nestjs 提供者)
如果服务 之间有相互的依赖 或者逻辑处理 可以使用 useFactory
125 0
小满nestjs(第十章 nestjs 提供者)
|
10月前
|
XML JSON Java
RESTful设计风格
RESTful设计风格
46 0
|
中间件
小满nestjs(第十二章 nestjs 中间件)
中间件是在路由处理程序 之前 调用的函数。 中间件函数可以访问请求和响应对象
181 1
小满nestjs(第十二章 nestjs 中间件)
|
前端开发 测试技术 API
小满nestjs(第八章 nestjs 控制器)
小满nestjs(第八章 nestjs 控制器)
153 0
小满nestjs(第八章 nestjs 控制器)
小满nestjs(第十一章 nestjs 模块)
每个 Nest 应用程序至少有一个模块,即根模块。根模块是 Nest 开始安排应用程序树的地方。事实上,根模块可能是应用程序中唯一的模块,特别是当应用程序很小时,但是对于大型程序来说这是没有意义的。在大多数情况下,您将拥有多个模块,每个模块都有一组紧密相关的功能
90 0
小满nestjs(第十一章 nestjs 模块)
|
前端开发
小满nestjs(第二十六章 nestjs 第一个CURD)
小满nestjs(第二十六章 nestjs 第一个CURD)
67 0
|
前端开发
前端知识学习案例3-express实现restful Api-创建文章
前端知识学习案例3-express实现restful Api-创建文章
63 0
前端知识学习案例3-express实现restful Api-创建文章
|
前端开发
前端知识学习案例1-express实现restful Api-简介1
前端知识学习案例1-express实现restful Api-简介1
58 0
前端知识学习案例1-express实现restful Api-简介1