1.1、简介

大家如果接触过http协议,那么肯定听过一个名词“RESTful ”。RESTful 是目前最流行的 API 架构风格,用于 Web 数据接口的设计。那什么是RESTful 呢? RESTful 的核心思想: 请求方式 + URL的方式对资源发起命令。 比如:GET /user 这个命令中,GET 查询动作,user是被查询的对象。 比如:POST /user 这个命令中,POST新增动作,user是被新增的对象。

1.2、常用请求方式

GET:查询(Read)

POST:新增(Create)

PUT:更新(Update)

PATCH:部分更新(Update)

DELETE:删除(Delete)

采用这种约定之后,每个动作对应不同的请求方式,但是URL不会发生变化。对于接口的维护和测试都是非常方便的。

1.3、RESTful和其他接口设计的区别

传统接口设计方式:

GET/POST /getAllUsers 查询所有的用户

GET/POST /getUserById?id=1 查询id=1用户

POST /createUser 创建用户

GET/POST /deleteByUserId?id=1 删除id=1用户

RESTful

GET /user 查询所有的用户

GET /user/1 查询id=1用户

GET /user?id=1 查询id=1用户

POST /user 创建用户

DELETE /user/1 删除id=1用户

DELETE /user?id=1 删除id=1用户

通过上面对比你会发现,RESTful类型的接口更加简单轻量,需要记忆的东西也变少了,这就是RESTful魅力所在。

1.4、状态码

http状态码是一个三位数,范围100-599,以第一位数分类。

1XX 接受的请求正在处理

2XX 请求正常处理完毕 200

3XX 重定向(302)相关和缓存(304)

4XX 客户端错误,服务端无法处理请求 404

5XX 服务器请求处理失败 500

在RESTful接口设计中1XX和3XX基本用不到,4XX和5XX还是和普通接口一样,出现了什么错误做出对应提示即可。只有2XX会有一些改变,传统接口成功之后我们都会统一返回200不做区分,而RESTful对于不同的请求方式会返回不同的状态码。如下:

GET: 200 OK

POST: 201 Created

PUT: 200 OK

PATCH: 200 OK

DELETE: 204 No Content

1.5、响应报文类型

RESTful接口返回的响应报文一般是JSON或者XML,由Content-Type这个实体头字段指定,不应该返回纯文本。JSON也是目前最常用的一种传输格式。

java rest 知乎_java 自动化 三分钟带你理解 RESTful相关推荐

  1. mysql和oracle冲突吗_三分钟带你分清MySQL 和Oracle之间的误区

    原标题:三分钟带你分清MySQL 和Oracle之间的误区 来自:华为云开发者社区 摘要:MySQL和Oracle,别再傻傻分不清. MySQL 和Oracle 在开发中的使用是随处可见的,那就简单去 ...

  2. 三分钟带你看懂prototype原型——ES6进阶

    三分钟带你看懂prototype原型--ES6进阶 1. prototype 定义 2. new 构造函数 3. 存储 4. prototype 作用 1. prototype 定义 在JS中的类的实 ...

  3. 三分钟带你弄懂slot插槽——vue进阶

    文章目录 三分钟带你弄懂slot插槽--vue进阶 一.概述 程序员之死 什么是 slot插槽? 2.6.0 版本中的 slot 二.具名插槽 例子 效果图 代码 三.小惊喜 三分钟带你弄懂slot插 ...

  4. 三分钟带你看懂HDMI接口的PCB设计

    三分钟带你看懂HDMI接口的PCB设计 本文主要讲解的是HDMI的设计,包括作用和运用的总结,希望大家看了以后能轻松的应对各种HDMI方案的PCB设计. 一.什么是HDMI? 高清晰度多媒体接口(英文 ...

  5. 三分钟带你读懂 BERT

    本文为 AI 研习社编译的技术博客,原标题 : BERT Technology introduced in 3-minutes 作者 | Suleiman Khan, Ph.D. 翻译 | 胡瑛皓.s ...

  6. C#三分钟教你理解DataTable、Datarow、DataColumn的关系以及用法

    C#三分钟教你理解DataTable.Datarow.DataColumn的关系以及用法! 码字不易,点赞关注加收藏,谢谢各位看官老爷了!!!!. 码字不易,点赞关注加收藏,谢谢各位看官老爷了!!!! ...

  7. 建网站的最简单方法(三分钟带后台)

    建网站的最简单方法(三分钟带后台) 准备材料 服务器或者本地环境 安装过程 准备材料 织梦二次开发模板或者Ecshop二次开发模板等(我以织梦为例讲解) 如果是本地需要下载ComsenzEXP或者Wa ...

  8. 5分钟带你理解一致性Hash算法

    转载自 5分钟带你理解一致性Hash算法 一致性Hash算法背景 一致性哈希算法在1997年由麻省理工学院的Karger等人在解决分布式Cache中提出的,设计目标是为了解决因特网中的热点(Hot s ...

  9. 十分钟带你理解Kubernetes核心概念

    原文地址:http://www.dockone.io/article/932 十分钟带你理解Kubernetes核心概念 本文将会简单介绍Kubernetes的核心概念.因为这些定义可以在Kubern ...

最新文章

  1. Android Studio无法打开解决方法
  2. ComputeShader中Counter类型的使用
  3. hibernate 继承映射
  4. mvc html编辑器,MVC3 Html编辑器助手显示旧模型值
  5. H5直播系列四 RTMP HTTP-FLV HLS MPEG-DASH
  6. Unity3D 单例模式
  7. u-boot移植第二弹——移植2012.10u-boot到RealARM210 cortex-A8开发板
  8. String类的使用 Part2
  9. leetcode1144. 递减元素使数组呈锯齿状
  10. Redis基数统计之HyperLogLog小内存大用处
  11. 移除动态view android,请教Android,动态添加到控件能动态删除吗?
  12. opencv小球与颜色识别
  13. Google点击没有反应怎么办?Google卸载不了怎么办?Google安装不了怎么办?
  14. Excel中的Array Formula
  15. 【CSDN|每日一练】走楼梯
  16. 小虎队《爱》 —— 米扑科技公司司歌
  17. 50万VPN登录凭证遭泄露,中国占11.89%
  18. ubuntu18.04安装详解
  19. 关于架构的胡言乱语(下)
  20. 手写 call、apply 及 bind 函数

热门文章

  1. java 内存溢出-与gc
  2. 15-jQuery补充
  3. Google Guice使用入门
  4. js中设置元素class的三种方法小结
  5. virtualbox在装centos5.6时自协把virtualbox add-on 装上了
  6. 42佳优秀的 Photoshop 按钮制作教程
  7. FPGA黑金开发板mini版新鲜出炉!!!
  8. 【转载】SQL中使用update inner join和delete inner join
  9. 我的WCF之旅 (11): 再谈WCF的双向通讯-基于Http的双向通讯 V.S. 基于TCP的双向通讯...
  10. matplotlib画图绘制辅助线