Resful API是什么

news2024/11/27 14:34:09

文章目录

  • 摘要
  • 1、RESTful API是什么?
  • 2、RESTful是什么?
  • 参考资料

摘要

RESTful是整个网络应用程序设计风格和开发方式。而RESTful API是其中API的设计风格。

1、RESTful API是什么?

API接口在设计命名时,由版本/操作资源名称/操作资源变量组成,其中不包含操作的行为动词,增删查改等操作行为由http请求方法(POST、GET、DELETE、PUT)决定。例如:
image.png

2、RESTful是什么?

是整个网络应用程序设计风格和开发方式,包括

  • 接口设计的合理性和访问的幂等性:接口按第一章的风格设计和命名,访问要求满足同样的请求,重复操作产生的结果是一样的(幂等性)。幂等性的好处是,能够防止因网络问题重发请求和延迟抵达后的请求叠加,导致数据被重复叠加操作。例如,某个接口的功能是让数据库数据自增50,客户端访问该接口时,由于网络问题导致请求延迟抵达,而客户端认为该请求丢失了,所以重发一次请求,结果导致数据错误的自增了100。

    可以通过为该数据添加一个版本号去解决该问题,在请求时指定自增的是版本号为1的记录,更新完后数据版本号变为2,这样再有重复的请求去更新版本1数据将失败。

  • 响应结构的统一和规范性:假如返回响应是JSON格式的,访问任何接口返回的JSON格式数据应当是一样的。例如:

    {
        "code":0,
        "message": "sucessful",
        "data": "XXX"
    }
    
  • 采用无状态的方案:服务器不存储用户的状态信息。而是由客户端存储状态信息,例如:JWT鉴权,客户端浏览器Cookie存储用户登录信息,每次访问时,携带cookie,服务器只需要负责验证。这样的好处是能够减轻服务器压力;也能够避免在分布式系统中,用户登录请求和访问数据请求处理的服务器节点不一致,而导致访问失败的状况。

参考资料

什么是 REST API 一文读懂 (RESTful API)

如何优雅的设计RESTful API接口

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/646996.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Spring Boot 初识丨六】依赖注入

上一篇讲了 Spring Boot 的beans 本篇来讲一讲 依赖注入 Spring Boot 初识: 【Spring Boot 初识丨一】入门实战 【Spring Boot 初识丨二】maven 【Spring Boot 初识丨三】starter 【Spring Boot 初识丨四】主应用类 【Spring Boot 初识丨五】beans 依赖注入 一、 定…

攻防世界-Crypto-easychallenge

题目描述:将文件下载下来,只有一个pyc文件 1. 思路分析 先向chatgpt问下什么是pyc文件: OK,这里简单总结下: 1. pyc文件是python源码编译后的生成的二进制文件 2. 通过一些库可以逆向出pyc的源代码 那么我们需要做…

数组题目总结 -- 单调栈问题

目录 零. 单调栈一. Next Greater Element(单调栈问题模板)题目简述:思路和代码:I. 思路II. 代码 二. Next Warmer Weather题目简述:思路和代码:I. 思路II. 代码 三. Next Greater Elements(循环数组)题目简…

UG\NX二次开发 装配下的点坐标

文章作者:里海 来源网站:https://blog.csdn.net/WangPaiFeiXingYuan 简介: UF_CURVE_create_point 创建一个点 UF_CSYS_create_temp_csys 创建临时坐标系 以上两个函数都有一个点坐标输入,而且都是输入的绝对坐标系下的点坐标值。下面验证在装配下两个绝对坐标值具体指 “当…

【三维视觉】空间点集的最小包围盒计算

0 问题描述 假设有一个空间点集,不重合的点数有N个。 N1时,最小包围盒是一个点:中心为其本身,半径无穷小 N2时,最小包围盒是一个圆:中心为连线中点,半径为边长一半 N3时,不共线的三…

【C#】并行编程实战:任务并行性(上)

在 .NET 的初始版本中,我们只能依赖线程(线程可以直接创建或者使用 ThreadPool 类创建)。ThreadPool 类提供了一个托管抽象层,但是开发人员仍然需要依靠 Thread 类来进行更好的控制。而 Thread 类维护困难,且不可托管&…

优惠券超发问题该怎么测试?

在拼夕夕面试中,面试官问了一连串经典的问题:“优惠券库存是怎么扣减的?开发为了解决超发优惠券问题而设计的方案,你了解过吗?你又是如何测试的呢?” 当时听到这些问题还挺懵的,没遇到过超发问…

MidJourney教程02

1.主体内容:高数AI你需要画什么?比如说,一个男生在电脑前画画? 2.环境北京:例如给某些地点或者物件,比如桌子上,足球场,水面有倒影等? 3.构图镜头:比如说强…

springboot项目外卖管理 day07-功能补充

文章目录 前端补充功能1、历史订单功能1.1、梳理过程1.2历史订单展示1.3、效果展示 2、修改/删除地址2.1、回显数据梳理过程 代码展示 2.2、修改地址梳理过程代码 2.3、删除地址梳理过程代码展示 3、再来一单功能3.1、梳理过程3.2、具体实现思路(参考一下当初我们怎…

Linux操作系统——第四章 进程间通信

目录 进程间通信介绍 进程间通信目的 进程间通信发展 进程间通信分类 管道 System V IPC POSIX IPC 管道 什么是管道 匿名管道 管道读写规则 管道特点 命名管道 创建一个命名管道 匿名管道与命名管道的区别 命名管道的打开规则 system V共享内存 共享内存示意…

【SpringBoot】解决依赖版本不一致报错问题

哈喽大家好,我是阿Q。今天在开发代码的过程中,由于手抖,不知道引入了什么包依赖,导致项目启动一直报错,特写本文来记录下解决问题的经过。 文章目录 问题描述报错信息如下报错描述 解决方法总结 问题描述 报错信息如下…

vite中使用 vite- aliases 插件报错

vite 中使用 vite-aliases 插件报错 vite-aliases 介绍报错内容解决方法 vite-aliases 介绍 vite-aliases 可以帮助我们自动生成别名: 检测你当前目录下包括 src 在内的所有文件夹, 并帮助我们去生成别名。 下载 npm i vite-aliases -D 使用 import { defineConfig } from vi…

VALSE 2023 无锡线下参会个人总结 6月11日-2

VALSE2023无锡线下参会个人总结 6月11日-2 6月11日会议日程安排Workshop:目标检测与分割程明明:粒度自适应的图像感知技术张兆翔:基于多传感器融合的视觉物体检测与分割 Workshop:ChatGPT与计算机视觉白翔:再谈ChatGPT…

290. 单词规律

290. 单词规律 C代码:别人手搓的 bool wordPattern(char * pattern, char * s){char arr[301][3001];char *p strtok(s, " ");int pos 0;while(p ! NULL) {sprintf(arr[pos], "%s", p);p strtok(NULL, " ");}int len strlen(pat…

Linux环境安装Jdk图文步骤

准备工作: a、jdk安装包:百度网盘 请输入提取码,提取码:jdk8 b、远程工具,xshell,,electerm,,MobaXterm,,fxp,docker,宝…

软件测试V、W和H模型的优缺点汇总,零基础必看哦

目录 V模型 W模型 H模型 总结: 软件测试有三种模型,分别是V模型,W模型和H模型。每种模型都有自己的优点和缺点。 V模型 V模型如下图所示: V模型的优点 V模型明确地标识出了在开发过程中一般应完成的测试级别,以及…

STM32-HAL库串口DMA空闲中断的正确使用方式+解析SBUS信号

STM32-HAL库串口DMA空闲中断的正确使用方式解析SBUS信号 一. 问题描述二. 方法一——使用HAL_UART_Receive_DMA三. 方法二——使用HAL_UARTEx_ReceiveToIdle_DMA四. 方法三——使用HAL_UARTEx_ReceiveToIdle_IT(不使用DMA)五. 总结 一. 问题描述 能够点…

java springboot整合MyBatis-Plus 多用点Plus支持一下国人开发的东西吧

文章java springboot整合MyBatis做数据库查询操作讲述了boot项目整合MyBatis的操作方法 但现在就还有一个 MyBatis-Plus Plus是国内整合的一个技术 国内的很多人会喜欢用 特别是一些中小型公司 他们用着会比较舒服 好 然后我们打开idea 创建一个项目 选择 Spring Initializr…

(九)CSharp-数组

一、矩形数组 1、访问数组元素 class Program{static void Main(string[] args){int[] intArr1 new int[15];intArr1[2] 10;int var1 intArr1[2];int[,] intArr2 new int[5, 10];intArr2[2, 3] 7;int var2 intArr2[2, 3];int[] myIntArray new int[4];for (int i 0; i…

Git 报错 Updates were rejected because the remote contains work that you do

目录 Git 报错 Updates were rejected because the remote contains work that you do 1、命令行出现这种情况 2、idea出现同样的报错,解决方式同上 Git 报错 Updates were rejected because the remote contains work that you do 这个报错实在是让我受不了了&…