restful风格的接口设计
1 为什么要用restful接口风格
restful的风格其实是一种规范,用来规范我们在写接口时的命名,用于前端与后端、项目与项目之间来传递数据。restful可以使我们的接口更加简洁、快捷高效、透明。
简洁:使用restful接口规范会使我们的接口名称的长度会变得更短,从而更加的简单清爽。
快捷高效:不管是前端的开发人员还是后端的开发人员,都可以根据接口的名称来得到接口的含义,进而也可以降低沟通成本。
透明:由于使用了restful接口风格来编程,又因为它是面向资源来写接口的,所以,后端的程序架构会很清晰透明。
2 restful风格的特点
2.1 约定大于配置
restful风格的接口设计被提出的很早,随着时间的演进它逐渐的被人们认可,这样使用确实更加的方便快捷,所以自然而然的也就流传了起来。随着使用越来越多,所以逐渐人们对接口的认识就变得统一了起来,就像resource文件夹里面装的是配置文件一样,我们约定俗称了restful接口的风格就是这样来写的,所以,我们也就达到了一个理想的状态:看到接口的uri,就能知道接口的功能。
2.2 无状态性
restful风格的接口依旧有着无状态性的特点,不管是何时从哪发送到哪,它的结果都是不变的,也不需要考虑上下文的状态。返回的状态和http请求的状态相同,符合http的状态码规范。
2.3 面向资源
restful风格的所有接口都是面向资源的,这样我们对于接口也更清晰明确它的功能。
3 restful风格是什么样的
3.1 restful的规范
一般来说,不同的请求类型对应着不同的操作
POST:添加
DELETE:删除
GET:查询
PUT:修改
查询某个国家中的城市
GET
http://localhost:8080/country/1/city/2
添加城市
POST
http://localhost:8080/city 添加的参数全部都写在body中
删除某个城市
DELETE
http://localhost:8080/city/2
修改某个城市
PUT
http://localhost:8080/country/1/city/2 修改的参数全部都写在body中
对于PUT和PATCH,PUT更新整个资源,具有幂等性,PATCH只更新部分资源,不具有幂等性。
如果有过于复杂的参数,更倾向于向后连接参数
过滤条件
?type=1&age=16 排序
?sort=age,desc 投影
?whitelist=id,name,email 分页
?limit=10&offset=3
3.2 常用的几种状态码
状态代码 | 状态描述 | 说明 |
---|---|---|
200 | OK | 客户端请求chengg |
400 | Bad Request | 请求的url和接口的url有错误 |
401 | Unauthorized | 权限不足 |
403 | Forbidden | 服务器可能受到请求,但是不能解析 |
404 | Not Found | 页面不存在 |
500 | Internal Server Error | 后端处理的程序用出错 |
503 | Service Unavailable | 服务器问题 |
4 多说几句
- restful风格的接口规范不是确定的,不同的公司或者不同的人对它的理解都不尽然相同,但是从总体上来说他是简单易懂的,尽最大的努力在接口中体现出来含义。
- 不要贸然将接口的规范直接修改为restful风格,它有它的好处,但是要注意成本,不要意气用事。
- 修改必然要付出代价。
5 追加参考部分
https://my.oschina.net/jumpLee/blog/1529137
restful风格的接口设计相关推荐
- restful风格_什么是RESTful风格的API设计?
随着移动互联网的兴起,RESTful风格的API设计也随之流行起来,但我们说了那么多RESTful设计,它到底是什么?本篇文章带大家来了解一下它的真实面目. RESTful概念 首先,我们需要明确的是 ...
- 什么是RESTful风格的API设计?
随着移动互联网的兴起,RESTful风格的API设计也随之流行起来,但我们说了那么多RESTful设计,它到底是什么?本篇文章带大家来了解一下它的真实面目. RESTful概念 首先,我们需要明确的是 ...
- SpringBoot开发Restful风格的接口实现CRUD功能
一.前言 我们都知道SpringBoot的出现使得在开发web项目的时候变得更加方便.快捷.之前写过一篇文章是如何快速搭建一个springboot项目:SpringBoot入门:使用IDEA和Ecli ...
- RESTful风格的API设计
RESTful风格的API设计 1.你怎么理解 RESTful 2000 年,Roy Thomas Fielding 博士在他那篇著名的博士论文<Architectural Styles and ...
- RESTful风格的接口
普通接口设计 只用到get和post接口 接口的地址一般由动词+名词构成 每个接口的地址都不一样 例如: 接口名:localhost:8080/getarticle 类型:get 功能:获取文章信息 ...
- java restful接口开发实例_实战:基于Spring Boot快速开发RESTful风格API接口
写在前面的话 这篇文章计划是在过年期间完成的,示例代码都写好了,结果亲戚来我家做客,文章没来得及写.已经很久没有更新文章了,小伙伴们,有没有想我啊.言归正传,下面开始,今天的话题. 目标 写一套符合规 ...
- 二十八、Node.js中的RESTful API和接口设计
@Author:Runsen @Date:2020/6/9 人生最重要的不是所站的位置,而是内心所朝的方向.只要我在每篇博文中写得自己体会,修炼身心:在每天的不断重复学习中,耐住寂寞,练就真功,不畏艰 ...
- SpringBoot RestFul风格API接口开发
本文介绍在使用springBoot如何进行Restful Api接口的开发及相关注解已经参数传递如何处理. 一.概念: REST全称是Representational State Transfer,中 ...
- restful api接口设计
技术由来: 互联网早期,页面请求和并发量不高,且移动端未盛行时对接口要求不高,使用动态页面(jsp)就能满足绝大多数的使用需求.但是随着互联网和移动设备的发展,人们对Web应用的使用需求也增加,传统的 ...
- 第一节:WebApi的纯原生态的RestFul风格接口和路由规则介绍
一. 原生态接口 1. 从默认路由开始分析 在WebApiConfig.cs类中的Register方法中,我们可以看到默认路由如下: 分析:请求地址在 controller 前面需要加上 api/,c ...
最新文章
- Java 2程序设计,Java2程序设计
- 【OpenCV 例程200篇】94. 算术平均滤波器
- 学习Java之前先学C语言
- go语言中省略号用法和参数
- 本特利3500_3500系统轴振信号异常波动问题浅析及建议
- 安徽出台医疗大数据应用发展实施意见
- Python反射和内置方法(双下方法)
- java jdk中优先队列的实现
- Hibernate XXX.hbm.xml 里的class标签的 schema 属性解释
- 冒泡排序 (Bubble Sort)
- 二进制文件和文本文件区别-小白笔记
- 管家婆 打开经营历程 Date exceeds maximum of 19-12-31报错解决
- html整人js代码大全,这几行 javascript 代码能让你的浏览器崩溃?
- Windows备份文件夹脚本.bat
- 面试|复习小册(2022-9)
- ADSL/光纤 双拨,多拨
- PYQT5安装时,labelImg执行pyrcc5 -o libs/resources.py resources.qrc 报错:File does not exist ‘resources.qrc‘
- python爬取豆瓣排行榜电影(静态爬取)(二次爬取)
- Error:(63, 20) Failed to resolve: com.github.chrisbanes:PhotoView:2.0.0
- 第三章-分支程序设计代码实例(C++蓝豹子)