RESTful风格学习(6)

thinkphp6.x+api知识点 1.RestFul Api 编码风格 简单概念 1.传统的是采用混编(html+php)或模板(tpl)的方式进行设计 2.前后端分离主要通过后端提供 API 接口返回的 json 数据交给前端渲染; 这样,后端程序员就专心提供数据,而前端程序员拿数据专心做渲染即可; 3.RestFul Api 是一种设计风格,推荐的一种规范,有助于统一协同和管理 什么是RestFul Api 风格 参考地址 http://restful.p2hp.com/ http://www.ruanyifeng.com/blog/2 阅读详情

本次介绍SpringMVC中较为常用的风格——RESTful风格。

1、REST概念

REST的意思就是表述性状态转换,它描述了一个架构样式的网络系统。

它是一种软件架构风格、设计风格,而不是标准,只是提供了一组设计原则和约束条件,它主要用于客 户端和服务端交互类的软件。

2、RESTful概念

而REST指的是一组架构约束条件和原则。即满足这些约束条件和原则的应用程序或设计就是RESTful。其中对于其特性如下说明:

  • 资源:

互联网所有的事物都可以抽象成资源。比如一个页面一个文本或者一张图片,我们都可以使用URL路径去指向它们。这必然就会出现“每种资源对应一个特定的URL”(不然输入URL会找到其他的资源)。

  • 表现层:

顾名思义,就是把资源具体呈现出来的形式,比如说文本可以以txt形式表示,也可以用HTML或者XML格式等等。

  • 状态转换:

状态转换在于每次发出一个请求时,它代表了客户端和服务端的一次交互过程。如果客户端想要操作服务器,必须通过某种手段,让服务器端发生“状态转换”(State Transfer)。

2.1 传统的资源路径展示

http://localhost:8080/getExpress.do?id=1

http://localhost:8080/saveExpress.do

并不是非要否定传统JavaWeb使用路径的格式,但是有更简便的方式何乐不为呢。

2.2 使用RESTful操作资源

GET/expresses查询所有快递信息的列表
GET/expresses/1006查询一个快递信息
POST/express新建一个快递信息
PUT/express/1006更新一个快递信息(全部)
PATCH/express/1006更新一个快递信息(部分)
DELETE/express/1006删除一个快递信息

这是一般CRUD的请求方式的使用。

3、API设计/URL设计

3.1 动词+宾语

RESTful 的核心思想就是客户端的用户发出的数据操作指令都是"动词 + 宾语"的结构。

动词通常就是五种 HTTP 方法,对应 CRUD 操作。
GET:读取(Read)
POST:新建(Create)
PUT:更新(Update)
PATCH:更新(Update),通常是部分更新
DELETE:删除(Delete)
PS: 
1、根据 HTTP 规范,动词一律大写。
2、一些代理只支持POST和GET方法, 为了使用这些有限方法支持RESTful API,需要一种办法覆盖http原来的方法。使用订制的HTTP头 X-HTTP-Method-Override 来覆盖POST 方法.

比如说,SAVE/expresses这个命令中,SAVE是动词,/expresses是宾语。

3.2 宾语是名词

宾语是HTTP作用的对象,一般而言以名词为主而不是动词。

又比如/expresses,这个URL就是正确的

以下这些URL都是不推荐的,因为带上了动词,不是推荐写法。
/getAllExpresses
/getExpress
/createExpress
/deleteAllExpress

3.3 避免多级的URL

资源中有多级分类,但是却不能写出多级的URL路径。比如说要获取顾客的信息或许有些人会写成如下:

GET/team/1001/player/1005

这里推荐使用查询字符串作为后缀:GET/team=1001?player=1005

以上的这些内容是作为编写代码的程序员所要遵守的规定法则,不遵守规定的程序员不是个好程序员呢~

4、HTTP状态码

客户端的用户发起的每一次请求,服务器都必须给出响应。响应包括 HTTP状态码和数据两部分。

HTTP 状态码就是一个三位数,分成五个类别。如下所示:

1xx:相关信息
2xx:操作成功
3xx:重定向
4xx:客户端错误
5xx:服务器错误
PS:API 不需要1xx状态码,所以这个类别直接忽略。

4.1 状态码2XX

200状态码表示的是操作成功,但是不同的方法可以返回不同的,更加详细的状态码。

GET: 200 OK 表示一切正常
POST: 201 Created 表示新的资源已经成功创建
PUT: 200 OK
PATCH: 200 OK
DELETE: 204 No Content 表示资源已经成功删除

4.2 状态码3XX

API 用到的 3xx 状态码,主要是 303 See Other ,表示参考另一个 URL。

我们还只需要关注一下304状态码就可以了 304 : Not Modified 客户端使用缓存数据

4.3 状态码4XX

4xx 状态码表示客户端错误。

400 Bad Request:服务器不理解客户端的请求,未做任何处理。
401 Unauthorized:用户未提供身份验证凭据,或者没有通过身份验证。
403 Forbidden:用户通过了身份验证,但是不具有访问资源所需的权限。
404 Not Found:所请求的资源不存在,或不可用。
405 Method Not Allowed:用户已经通过身份验证,但是所用的 HTTP 方法不在他的权限之内。
410 Gone:所请求的资源已从这个地址转移,不再可用。
415 Unsupported Media Type:客户端要求的返回格式不支持。比如,API 只能返回 JSON 格式,但是客户端要求返回 XML 格式。
422 Unprocessable Entity :客户端上传的附件无法处理,导致请求失败。
429 Too Many Requests:客户端的请求次数超过限额。

4.4 状态码5XX

5xx 状态码表示服务端错误。一般来说API 不会向用户透露服务器的详细信息,所以只要两个状态码就够了。

500 Internal Server Error:客户端请求有效,服务器处理时发生了意外。
503 Service Unavailable:服务器无法处理请求,一般用于网站维护状态。

后续我会对RESTful进行实例的操作,请大家期待一下,并且如上的内容有何问题请多批评指正,谢谢大家。

restful风格详解 概念 Restful就是一个资源定位及资源操作的风格。不是标准也不是协议,只是一种风格。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。 功能 资源:互联网所有的事物都可以被抽象为资源 资源操作:使用POST、DELETE、PUT、GET,使用不同方法对资源进行操作。 分别对应 添加、 删除、修改、查询。 传统方式操作资源 http://127.0.... 阅读详情

相关推荐

什么是RESTful接口风格

本文将为您介绍RESTful的基本概念、设计原则以及实际应用中的一些技巧。通过本文,我们深入了解了RESTful接口风格的基本概念、设计原则以及一些实际应用的技巧。如果有任何问题或建议,欢迎在评论区留言。RESTful接口应该是统一的,资源的标识、资源的操作方式等都应该符合一致的设计原则。使用HTTP状态码来表示请求的结果,例如200表示成功,404表示未找到资源等。URI应该简洁、直观,使用名词表示资源,使用HTTP方法表示对资源的操作。资源是RESTful设计的核心,每个资源都有一个唯一的标识符。

私聊前往站内信:https://i.youkuaiyun.com/#/msg/chat/weixin_44976692 2万+

Restful中动词的使用

Restful中动词的使用

无能力者只知抱怨 3791

电路抗干扰原理及应用(1)

电路抗干扰原理——介绍干扰源、干扰途径、抗干扰技术(接地技术)

qq_34758408的博客 2061

Restful的使用

文章目录RESTful1. REST概念2. RESTful概念2.1 RESTful的特性2.2 RESTful和原有方式操作资源的对比3. API设计/URL设计3.1 RESTful核心思想3.2 RESTful中的五种动词3.3 RESTful中的宾语3.4 避免多级URL4. HTTP状态码4.1 状态码2xx4.2 状态码3xx4.3 状态码4xx4.4 状态码5xx5. 服务器响应6. 案例6.1 RESTful风格的查询6.2 RESTful风格的添加6.3 RESTful风格的更新6.4

lijinghua的博客 1547

保姆级教程:用Python工具搞定MTK手机分区表(PGPT)备份与线刷引导文件生成

本文提供了一份详细的Python工具链教程,帮助用户备份MTK手机的PGPT分区表并生成线刷引导文件。内容涵盖环境配置、分区表解析、备份流程、线刷文件生成及常见问题排查,特别适合安卓玩机爱好者和开发者。通过本指南,读者可掌握MTK芯片设备的底层分区操作技术,实现安全高效的分区备份与恢复。

weixin_30394669的博客 189

GD32F105RBT6 keil工程模板

创建GD32F105RBT6的keil初始基础工程,未来的所有外设驱动都是基于这个基础工程进行扩展。

RMDYBW的博客 1926

如何理解RESTful API

一、基本概念 1.1 什么是REST REST全称是Representational State Transfer,中文意思是表征性状态转移 它首次出现在2000年Roy Fielding的博士论文中,Roy Fielding是HTTP规范的主要编写者之一 他在论文中提到:"我这篇文章的写作目的,就是想在符合架构原理的前提下,理解和评估以网络为基础的应用软件的架构设计,得到一个功能强、性能好、适...

Bryce_Liu的博客 483

服务器冗余电源维修图纸,冗余热备份电源的电路图设计

在设计某高可靠性计算机系统时,要求其配套电源采取冗余设计。一般来说,可以采取的方案有容量冗余、冗余冷备份方式、并联均流的N+1备份方式、冗余热备份方式。容量冗余是指电源的最大负载能力大于实际负载,也就是“大马拉小车”,其缺点是不利于提高电源的效率,而且对提高电源的可靠性意义不大。冗余冷备份方式是指电源由两个或多个功能相同的单元模块组成,电源启动后由其中一个单元模块向设备供电,当工作单元发生故障时,...

weixin_39671509的博客 1995

浅谈RESTFUL

RESTful 是什么? 在说明 RESTful是什么之前,可以先理解一下 REST 是什么。 Roy Fielding 和他的同事们针对 Web 取得的巨大成就,对技术架构方面的因素做了一番深入的总结,Fielding 将这些总结纳入到了一套理论框架之中。极为成功的HTTP/1.1就是由这套理论框架指导设计的。REST(Resource Representational State Transfer 资源描述性状态转移,也有人将它翻译为:表现层状态转化)也是通过这套理论框架推导出的一种新的架构风格.

拯救世界的光太郎 322

第一讲:halcon模板匹配捆绑测量矩形检测芯片针脚

使用halcon模板匹配捆绑测量矩形,检测位置发生变换的芯片针脚缺陷。

uiopmn1的博客 2995

C++实现复制粘贴文本功能

要实现这个功能,我们需要使用操作系统提供的函数来操作剪贴板。在Windows操作系统中,我们可以使用Windows API函数来访问剪贴板。总结起来,使用C++实现复制和粘贴文本功能涉及使用操作系统提供的API函数来操作剪贴板。在本篇文章中,我将向您展示如何使用C++编程语言实现复制和粘贴文本的功能。我们将使用操作系统提供的API来进行剪贴板操作,并编写相应的代码来完成这个任务。如果您使用的是Linux操作系统,您需要使用适当的库和函数来访问剪贴板。函数中,我们首先将一个字符串复制到剪贴板中,然后使用。

PixelDyno的博客 1233

RESTFul:RESTful简介、RESTful的实现、RESTFul案例

ReStateTransfer,表现层资源状态转移。

weixin_46245201的博客 1366

一文读懂 SAP ERP / SAP S/4HANA 里的 Price List:概念、配置、定价流程与可运行 ABAP 示例

SAP ERP/S4HANA中的Price List解析 本文系统阐述了SAP定价体系中Price List的核心概念和实现机制。Price List并非独立的价目表,而是通过条件技术(条件类型、访问序列、条件记录)与Price List Type(PLTYP)共同作用的定价维度。文章详细说明了: Price List本质上是客户主数据中的PLTYP字段,作为定价查找键使用 定价流程中条件访问序列如何利用PLTYP查找特定价格 S4HANA与ECC版本在价格维护入口的差异 实际业务中如何通过不同PLTYP实

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 660

SpringBoot学习(6)—— RESTful风格

RESTful风格

Archer__13的博客 547

十一、增强现实

那都是n年前的老版本了,新版本完全没有这个问题,我就是纠结这个问题,搭建若干环境,又是vmware虚拟机,又是msys2,又是anaconda,又是找机器,折腾了几天,结果通通不是。以一张实际卡片为锚点,通过笔记本的摄像头,在显示器上将一个计算机内的3d物体显示在卡片上,类似于电影上看到的那种全息投影技术;如果你是想在windows环境下开发linux运行程序,那么CygWin/gcc是你的不二之选。而如果你想开发的是windows运行程序,并且追求速度,那么二者相比而言,MinGW是更好的选择。

3188

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

【SpringMVC学习笔记】6.RestFul开发风格

Restful开发风格

taoyong920710的博客 191

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Restful风格详解

SpringMVC Restful风格及实例、参数的转换 一、Restful风格 1、Restful风格的介绍 Restful 一种软件架构风格、设计风格,而不是标准,只是提供了一组设计原则和约束条件。它主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。 REST(英文:Representational State Transfer,简称REST)描述了一个架构样式的网络系统,比如 web 应用程序。在目前主流的三种Web服务交互方案中,REST相比于

weixin_51429303的博客 3万+

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

SpringMVC学习之RESTful风格post

RESTful不是一种技术,而是一种风格。下面这个是百度百科对这种风格的解释:      一种软件架构风格,设计风格而不是标准,只是提供了一组设计原则和约束条件。它主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。 我们来比较一下REST和非REST的区别,本文和上一篇的有很大的关联,可以先看上一篇文章把配置文件弄好和体验一下Spring

陈洪杰的博客 2万+

到底什么是RESTFul风格接口?

RESTful是一种架构风格(Architectural Style),它定义了如何通过一组标准的 HTTP 方法(如 GET、POST、PUT、DELETE)来访问和操作 Web 上的资源。RESTful 的核心思想是将应用中的每一个实体(如用户、商品、订单等)视为资源,并通过 URL 进行唯一标识。每种资源都有一组能够对其执行的操作,而这些操作对应着 HTTP 方法。RESTful API 是基于 REST 架构风格实现的 Web 服务接口,它强调无状态性客户端-服务器分离可缓存性统一接口。

jast 2166

SpringMVC基础学习之Restful风格的简单使用

前言: 小伙伴们,大家好,我是狂奔の蜗牛rz,当然你们可以叫我蜗牛君,我是一个学习Java半年多时间的小菜鸟,同时还有一个伟大的梦想,那就是有朝一日,成为一个优秀的Java架构师。 这个SpringMVC基础学习系列是用来记录我学习SpringMVC框架基础知识的全过程 (这个系列是参照B站狂神的SpringMVC最新教程来写的,由于是之前整理的,但当时没有发布出来,所以有些地方可能有错误,希望大家能够及时指正!) 之后我将尽量以两天一更的速度更新这个系列,还没有学习SpringMVC框架的小伙

weixin_45301250的博客 1241

SpringBoot总结(十五)——接口架构风格(RESTful)

【第一部分】历史文章: SpringBoot总结(一)——第一个SpringBoot项目 SpringBoot总结(二)——Spring Boot的自动配置 SpringBoot总结(三)——SpringBoot的配置文件 SpringBoot总结(四)——@Value和@ConfigurationProperties的区别 SpringBoot总结(五)——@PropertySource注解与@ImportResource注解 SpringBoot总结(六)——SpringBoot配置文件占位符 Spri

专注Java后端技术干货、项目源码总结分享,期待您的关注。 4400

什么是Restful风格?与传统的访问风格有什么不同?

什么是Restful风格?与传统的访问风格有什么不同?

程序小白的博客 8497

RESTful风格学习

REST(representational state transfer,表述状态转换)作为一种软件架构风格、设计风格,而非标准,只提供一组设计原则与约束条件。主要作用于客户端和服务器交互的软件,使其更加简洁、更有层次和更易于实现缓存等机制。

bollks的博客 892

SpringMVC学习记录(四)之RESTFul风格

SpringMVC学习记录(四)之RESTFul风格

LB_Wuyanzu的博客 1134

RESTFul风格设计和实战

RESTful(Representational State Transfer)是一种软件架构风格,用于设计网络应用程序和服务之间的通信。它是一种基于标准 HTTP 方法的简单和轻量级的通信协议,广泛应用于现代的Web服务开发。通过遵循 RESTful 架构的设计原则,可以构建出易于理解、可扩展、松耦合和可重用的 Web 服务。RESTful API 的特点是简单、清晰,并且易于使用和理解,它们使用标准的 HTTP 方法和状态码进行通信,不需要额外的协议和中间件。

qq_40818172的博客 1187

RESTful风格API详解

在学习RESTful 风格接口之前,即使你不知道它是什么,但你肯定会好奇它能解决什么问题?有什么应用场景?听完下面描述我想你就会明白: 在互联网并没有完全流行的初期,移动端也没有那么盛行,页面请求和并发量也不高,那时候人们对接口的要求没那么高,一些动态页面(jsp)就能满足绝大多数的使用需求。 但是随着互联网和移动设备的发展,人们对Web应用的使用需求也增加,传统的动态页面由于低效率而渐渐被HTML+JavaScript(Ajax)的前后端分离所取代,并且安卓、IOS、小程序等形式客户端层出不穷,客户端的

tc979907461的博客 4619
上一篇: SpringMVC处理器方法的返回值(5)
下一篇: U1_操作系统引论
Xiao艾扶
博客等级 码龄7年 187粉丝 93原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Xiao艾扶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值