首页
学习
活动
专区
圈层
工具
发布

(GET、POST、PUT、DELETE、PATCH)各自的作用和区别是什么?

其中最常用的是 ​​GET​​​、​​POST​​​、​​PUT​​​、​​DELETE​​​、​​PATCH​​,它们的作用和区别如下:1....特点: 通常通过 URL 标识要删除的资源,请求体可选(一般不携带数据)。是非安全的(会删除资源),但幂等的(多次删除同一资源,最终结果相同:资源不存在)。不可缓存。...是非安全的(会修改资源),但幂等的(多次执行相同的部分更新,结果相同)。不可缓存。典型场景:部分更新资源(如仅修改用户的邮箱,不改变姓名和年龄)。...幂等性:指多次执行相同请求后,服务器资源状态是否一致(​​GET​​/​​PUT​​/​​DELETE​​/​​PATCH​​ 是幂等的,​​POST​​ 通常非幂等)。...实际开发中,部分场景可能灵活使用(如 ​​POST​​ 也可用于更新资源),但遵循规范能提高接口的可读性和一致性。

1.2K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    在Express中对MongoDB数据库进行增删改查

    这两天跟着B站的Johnny老师学习NodeJs+Express+MongoDB相关的知识点,前后跟着做了1小时搞定NodeJs(Express)的用户注册、登录和授权、Element UI + NodeJs...(Express)全栈开发后台管理界面、Express-9-MongoDB删除产品和DELETE请求等系列视频。...编码前的准备工作 首先要安装好NodeJs运行环境,配置好node和npm的环境变量,最好安装淘宝 NPM 镜像cnpm,安装配置好npm后,打开终端运行npm install -g cnpm --registry...然后在VSCode中打开终端,使用cnpm命令安装express和MongoDB的数据库模块mongoose和cors(支持跨域),命令如下: cnpm install express cnpm install...,简单易用,下面的代码演示了如何使用Express在指定的4001端口上监听,开启一个http服务,当然端口可以随意指定,只要和系统中其他不冲突即可,感觉使用起来比Java SpringBoot简单不少

    7.1K10

    编写接口请求库单元测试与 E2E 测试的思考

    所以单测和 E2E 也是非常重要。 架构设计 先说说我这个接口库是怎么封装了,然后再说怎么去测试。...这里用 axios 为默认适配器,那么就是在测试中 mock 掉 axios 的请求方法(axios.get, axios.post, ...)因为 axios 的逻辑你是不需要关心也不需要测试的。...具体参考: @mx-space/api-client:__test__/helper E2E test E2E 是点对点测试,是需要去真实访问接口的,这也是最接近用户实际开发体验的测试,也就是说不 mock...我已 Express 、 Jest 为例。我的想法是直接用 Express 托管一系列接口。当然不是手动去启动一个服务,而是 Express 直接跑在 Jest 测试中。...with search query', async () => { 48 app.get('/search/post', (req, res) => { 49 if (req.query.keyword

    1.4K40

    推荐一个基于 Node.js 的表单验证库

    虽然我已经尝试了一些 Node.js 的表单库 —— Express 和 Koa ——他们从未满足我的项目需求。 这些扩展库要么不兼容复杂的数据结构,要么在异步验证出现问题。...注意:所有代码示例都基于 Koa,但数据验证代码也同样适用于 Express。 datalize 库还有一个实现 Express 表单验证的例子。...一个基本的Node.js表单验证案例 假设你的 API 中有一个 Koa 或 Express Web 写的服务和一个端点,用于在数据库中创建包含多个字段的用户数据。...通过在路由的 .post() 方法中传递两个 datalize 中间件,可以同时对查询和表单数据进行验证。...`PUT`/`PATCH` 在使用 PUT/PATCH (或 POST)更新数据时,你不必重写所有逻辑、规则和过滤器。

    3.4K40

    关于Express的一些路由与响应方法

    前言Express.js 是一个流行的 Node.js Web 应用框架,提供了丰富的路由和响应方法,使得构建 Web 应用程序变得简单高效。...本篇主要讲解是一些常用的路由和响应方法一、定义路由的方法app.get():定义一个处理 HTTP GET 请求的路由app.post:定义一个处理 HTTP POST 请求的路由app.all():处理所有...HTTP 请求方法(如 GET、POST、PUT 等)的路由app.jsconst express = require("express");const app = express();app.all...name=John.3、req.method 是一个属性,用于获取当前请求的 HTTP 方法,常见的方法包括GET、POST、PUT、DELETE 等常见 HTTP 方法:GET:用于请求资源,通常用于获取数据...POST:用于提交数据,通常用于创建新资源PUT:用于更新资源,通常用于替换资源的全部内容DELETE:用于删除资源PATCH:用于更新资源的部分内容app.jsdemoconst express =

    64800

    13 个设计 REST API 的最佳实践

    但是,就 REST API 设计本身而言,所涉及到的 HTTP 知识要点大概包含以下几条: HTTP 中包含动词(或方法): GET、POST、PUT、PATCH 还有 DELETE 是最常用的。...在业务领域,我们常常可以将动词和 CRUD(增删查改)关联起来:GET 代表查,POST代表增,PUT 和 PATCH 代表改(注: PUT 通常代表整体更新,而 PATCH 代表局部更新),而 DELETE...下面是我推荐的与动词相对应的状态码: GET: 200 OK POST: 201 Created PUT: 200 OK PATCH: 200 OK DELETE: 204 No Content...但这样做的问题是,通常,web 框架并不是针对构建 REST API 服务而专门存在的,换言之,Flask 和 Express 是两个十分通用的框架,但它们并非特别适合用于构建 REST API 服务。...在各种语言中,许多专门用于构建 REST API 服务的新框架已经出现了,它们可以帮助你在不牺牲生产力的情况下,轻松地完成工作,同时遵循最佳实践。

    4.3K20

    REST API 最佳实践

    这是因为 HTTP 方法,例如 GET、POST、PUT、PATCH 和 DELETE,已经以动词形式执行基本的 CRUD(创建、读取、更新、删除)操作。...GET、POST、PUT、PATCH 和 DELETE 是最常见的 HTTP 动词。还有其他非 HTTP 标准动词,如 COPY、PURGE、LINK、UNLINK 等等。...使用五种 HTTP 方法 POST,GET,PUT/PATCH,DELETE 可以提供 CRUD 功能(创建,获取,更新,删除)。 除了 POST 其他请求都具备幂等性(多次请求的效果相同)。...PUT 和 PATCH 都是幂等的。 删除:使用 DELETE 删除现有资源(幂等)。 简而言之,你应该让 HTTP 动词来处理端点的工作。...因此,GET 将检索资源,POST 将创建资源,PUT 将更新整个资源,DELETE 将删除资源,PATCH 更新资源的局部数据。 5.用过滤、排序和分页请求数据 有时,API 的数据库可能非常大。

    2.8K20

    ✅快速构建Express服务

    使用Mongoose构建服务该方式需要在本地安装MongoDB才可以使用 TypeScript、Express、Mongoose 和 pnpm 可以快速构建后端服务,并实现增删改查以及列表查询的功能。...应用程序,并配置中间件和路由:import express from 'express';import mongoose from 'mongoose';import routes from '....以下是一些示例请求:接口测试获取用户列表:GET http://localhost:3000/users创建用户:POST http://localhost:3000/users,请求体为 JSON 格式的用户数据...获取单个用户:GET http://localhost:3000/users/{id}更新用户:PATCH http://localhost:3000/users/{id},请求体为 JSON 格式的更新数据.../utils/controllers';const router = express.Router();router.post('/todo-list', createTodoList);router.get

    1.1K21

    使用Typescript实现轻量级Axios

    目录 背景 搭建环境 搭建简易后台提供接口 安装原生Axios并使用 查看效果 分析传参和返回值 实现Axios createInstance 类型定义 Axios类实现GET方法 类型声明小插曲...类型定义 从分析传参和返回值的截图可得知需定义的类型 此处将源码进行简化便于理解 // axios/types.ts export type Methods = | 'GET' | 'get'...| 'POST' | 'post' | 'PUT' | 'put' | 'DELETE' | 'delete' | 'PATCH' | 'patch' | 'HEAD' | 'head'...: Methods[] = ['put', 'post', 'patch'] const allMethods: Methods[] = [...getStyleMethods, ...postStyleMethods...实现请求与响应的转换 在平常工作中存在前后端并行开发或前端先行开发带来的命名不统一的常见问题,解决方案一般为对对象或者数组属性做映射。类似解决方案如@careteen/match。

    3.5K10

    Express服务器开发

    ,Express是一个Node.js Web应用框架,它很强大,可以为用户创建各种Web应用和HTTP工具,使用Express框架可以搭建一个完整功能的网站。...request对象和response对象来处理请求和响应的数据: app.get('/', function(req,res){ }) request对象为HTTP请求 req.app 为callback...res.json() 传送json响应 res.jsonp 传送jsonp响应 res.location() 只设置响应的LocationHTTP请求头,不设置状态码或者close response...app'); }); GET 请求一个指定资源的表示形式,只用于获取数据 POST 用于将尸体提交到指定的资源 HEAD 请求一个与GET相同的响应,但没有响应体 PUT 用于请求有效载荷替换目标资源的所有当前表示...DELETE 删除指定的资源 CONNECT 建立一个由目标资源标识的服务器的隧道 OPTIONS 用于描述目标资源的通信选项 PATCH 用于对资源应用部分修改 app.get('/about

    2.5K20

    【Vue3+TypeScript】CRM系统项目搭建之 — Axiox 网络请求封装

    GET 请求 注意:GET请求无请求体,可以是可以有请求体body的,但是不建议带。 为什么不建议带请求体?...这是因为GET和POST请求在语义和使用上有一些不同: 语义上的不同: GET请求:通常用于请求数据,它的语义是“获取”或“查询”。浏览器会把GET请求的结果(响应体)直接展示给用户。...请求体的处理: GET请求:虽然GET请求可以包含请求体(body),但大多数HTTP客户端和服务器在处理GET请求时都会忽略请求体。...这些信息应该通过POST请求放在请求体中,并使用适当的加密和身份验证机制来保护。 综上所述,虽然技术上GET请求可以包含请求体,但出于上述原因,通常不建议在GET请求中包含请求体。...如下是 POST 请求简写与传入配置项写法时,关于请求体格式的一点区别: 接口 var express = require('express') var path = require('path') var

    56010

    Nest.js Controller 解析:探索路由和请求处理的强大功能

    在 Nest  中, 创建一个 控制器,应该使用类 和 装饰器 , 装饰器会使类相关联的数据的关联起来,将请求绑定到相应的控制器。...@Controller 接受一个参数,这可参数可选,默认如果不传,  就是 /@Controller(分组名)import { Controller, Get, Param, Post } from '...@Controller 装饰器 修饰 类,该类就拥有和装饰器关联的属性和功能,传递了一个参数  user ,  说明当前路由分组名称为 user , 当前类下的所有基准路由都是 /user/  开头了。...1.3.2 请求参数装饰器通过对客户端发起的请求参数做解析处理,Nest 提供的访问请求对象 默认方式为 express .Nest express...(),  @Post(),  @Put(),  @Delete(),  @Patch(),  @Options(), 和 @Head().

    93750

    Node.js服务端开发教程 (三):NestJS的路由与控制器

    比如在Express.js(也是NestJS的默认底层适配框架)中,它的路由定义会是这样: // 一个简单的 GET 方法路由 app.get('/products', function (req, res...装饰器是众多HTTP方法处理装饰器中的一个(其他的有@Post,@Put,@Delete,@Patch,@Options,@Head,@All),经过它装饰的类方法,可以对HTTP的Get方法请求进行响应...@Get("greeting/:words") 标准模式和特定库模式 乍一看,标准模式和特定库模式,有点不知所云。...但是,如果你的应用在将来可能计划做底层框架替换,比如用性能更好的Fastify替换Express,那使用过多的特定库模式写法就会增加移植的工作量和难度。 所以在这两种模式的使用上,需要权衡利弊。...总结 路由和控制器是编写服务端API的工作中,非常基础又非常重要的一环,先熟悉和理解基本的用法,然后深入思考和研究它们的实现原理,这些知识在服务端编程中都是共通的,无论在Node.js、Java、亦或是

    3.9K20
    领券