小满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 上游接口有问题或者服务器问题

目录
相关文章
|
1月前
|
前端开发 API 网络架构
掌握RESTful API设计的艺术
【10月更文挑战第6天】本文将带你深入理解RESTful API的设计原则,通过实际的代码示例,展示如何创建符合REST架构风格的API。我们将探索资源的定义、HTTP方法的应用以及状态码的正确使用,让你能够构建出既优雅又高效的后端服务接口。
|
4月前
|
机器学习/深度学习 API iOS开发
探索iOS开发中的SwiftUI框架深入理解RESTful API设计原则与最佳实践
【7月更文挑战第30天】本文深入探讨了SwiftUI框架在iOS开发中的应用,分析了其对用户界面构建的简化方法及性能优化。通过比较传统UI构建方式与SwiftUI的差异,揭示了SwiftUI如何提高开发效率和用户体验。文章还讨论了SwiftUI在实际项目中的集成策略,并展望了其未来的发展方向。 【7月更文挑战第30天】在数字时代的浪潮中,RESTful API如同一座桥梁,连接着不同的软件系统。本文将探讨RESTful API的核心设计原则,揭示其背后的哲学思想,并通过实例分析展示如何将这些原则应用于实际开发中。我们将从资源定位、接口一致性到HTTP方法的恰当使用,逐一剖析,旨在为开发者提供
63 1
|
2月前
|
前端开发 API 数据格式
探索RESTful API设计的艺术
【8月更文挑战第33天】在数字世界的海洋中,API是连接不同软件系统的桥梁。本文将带你走进RESTful API的设计世界,通过深入浅出的方式,探讨如何打造高效、可扩展的后端服务。我们将一起学习如何运用最佳实践来构建API,确保它们既易于使用又具备强大的功能。准备好让你的后端技能更上一层楼了吗?让我们开始吧!
|
2月前
|
前端开发 API 数据安全/隐私保护
深入浅出理解RESTful API设计
【9月更文挑战第5天】在数字世界的海洋里,API是连接不同软件的桥梁。本文将带你深入探索RESTful API设计的精髓,从基础概念到进阶实践,让你掌握如何构建高效、易用的后端服务接口。
|
XML JSON API
Restful编码风格
RESTful 是一种 Web 服务设计风格,它强调使用 HTTP 协议的语义来实现资源的定义、操作和表现,通常被认为是一种简单、灵活、可扩展、易于维护和可读性高的 Web 服务设计风格
55 0
|
6月前
|
JSON 数据格式
基于RestFul风格编程示例
基于RestFul风格编程示例
54 0
|
中间件
小满nestjs(第十二章 nestjs 中间件)
中间件是在路由处理程序 之前 调用的函数。 中间件函数可以访问请求和响应对象
230 1
小满nestjs(第十二章 nestjs 中间件)
|
XML JSON Java
RESTful设计风格
RESTful设计风格
70 0
小满nestjs(第十一章 nestjs 模块)
每个 Nest 应用程序至少有一个模块,即根模块。根模块是 Nest 开始安排应用程序树的地方。事实上,根模块可能是应用程序中唯一的模块,特别是当应用程序很小时,但是对于大型程序来说这是没有意义的。在大多数情况下,您将拥有多个模块,每个模块都有一组紧密相关的功能
136 0
小满nestjs(第十一章 nestjs 模块)
|
前端开发 测试技术 API
小满nestjs(第八章 nestjs 控制器)
小满nestjs(第八章 nestjs 控制器)
195 0
小满nestjs(第八章 nestjs 控制器)