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

目录
相关文章
|
3月前
|
前端开发 API 网络架构
掌握RESTful API设计的艺术
【10月更文挑战第6天】本文将带你深入理解RESTful API的设计原则,通过实际的代码示例,展示如何创建符合REST架构风格的API。我们将探索资源的定义、HTTP方法的应用以及状态码的正确使用,让你能够构建出既优雅又高效的后端服务接口。
|
6月前
|
机器学习/深度学习 API iOS开发
探索iOS开发中的SwiftUI框架深入理解RESTful API设计原则与最佳实践
【7月更文挑战第30天】本文深入探讨了SwiftUI框架在iOS开发中的应用,分析了其对用户界面构建的简化方法及性能优化。通过比较传统UI构建方式与SwiftUI的差异,揭示了SwiftUI如何提高开发效率和用户体验。文章还讨论了SwiftUI在实际项目中的集成策略,并展望了其未来的发展方向。 【7月更文挑战第30天】在数字时代的浪潮中,RESTful API如同一座桥梁,连接着不同的软件系统。本文将探讨RESTful API的核心设计原则,揭示其背后的哲学思想,并通过实例分析展示如何将这些原则应用于实际开发中。我们将从资源定位、接口一致性到HTTP方法的恰当使用,逐一剖析,旨在为开发者提供
72 1
|
4月前
|
前端开发 API 数据格式
探索RESTful API设计的艺术
【8月更文挑战第33天】在数字世界的海洋中,API是连接不同软件系统的桥梁。本文将带你走进RESTful API的设计世界,通过深入浅出的方式,探讨如何打造高效、可扩展的后端服务。我们将一起学习如何运用最佳实践来构建API,确保它们既易于使用又具备强大的功能。准备好让你的后端技能更上一层楼了吗?让我们开始吧!
|
5月前
|
JSON 监控 中间件
多图详解万星 Restful 框架原理与实现
多图详解万星 Restful 框架原理与实现
|
5月前
|
缓存 API 开发者
探索RESTful API设计的艺术与实践
【8月更文挑战第31天】在数字世界的建筑中,API扮演着连接不同软件组件的桥梁。本文将带你走进RESTful API的设计世界,从理论到实践,揭示如何构建高效、易于理解且灵活的后端接口。我们将一起探讨设计原则,并通过代码示例,展示如何将这些原则应用于实际开发中。无论你是初学者还是经验丰富的开发者,这篇文章都将为你提供新的视角和实用技巧。
|
5月前
|
JavaScript 前端开发 测试技术
Angular与NestJS的神奇之处:如何用全栈技术让你的项目一鸣惊人?
【8月更文挑战第31天】在现代软件开发中,全栈开发已成为主流。借助Google支持的开源前端框架Angular及基于TypeScript的Node.js框架NestJS,我们可以构建出高性能的全栈应用。本文将探讨Angular与NestJS的结合方式,并通过示例代码展示如何创建全栈Angular应用。了解应用需求、编写测试和关注性能是实现这一目标的关键步骤。随着Angular和NestJS生态的不断发展,它们必将在未来的Web开发中发挥更大的作用。
119 0
|
XML JSON API
Restful编码风格
RESTful 是一种 Web 服务设计风格,它强调使用 HTTP 协议的语义来实现资源的定义、操作和表现,通常被认为是一种简单、灵活、可扩展、易于维护和可读性高的 Web 服务设计风格
60 0
|
8月前
|
API
07_Restful风格接口设计
07_Restful风格接口设计
61 4
|
8月前
|
JSON 数据格式
基于RestFul风格编程示例
基于RestFul风格编程示例
58 0
|
XML JSON 应用服务中间件
RESTful风格,这么理解试试看
谈起RESTFUL大家未免都耳熟能详,但是要介绍一下它是什么,可能就是停留在听过或者见过的阶段了。一贯喜欢以通俗的语言来消化知识的小马自然不会放过它了,就让我们来以唠嗑的方式浅谈一下助于理解。
111 1
RESTful风格,这么理解试试看