首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >RESTful接口设计原则和优点

RESTful接口设计原则和优点

作者头像
用户1558882
发布于 2018-04-03 08:09:26
发布于 2018-04-03 08:09:26
3.7K00
代码可运行
举报
文章被收录于专栏:RgcRgc
运行总次数:0
代码可运行

RESTful架构优点:

  1. 前后端分离,减少流量
  2. 安全问题集中在接口上,由于接受json格式,防止了注入型等安全问题
  3. 前端无关化,后端只负责数据处理,前端表现方式可以是任何前端语言(android,ios,html5)
  4. 前端和后端人员更加专注于各自开发,只需接口文档便可完成前后端交互,无需过多相互了解
  5. 服务器性能优化:由于前端是静态页面,通过nginx便可获取,服务器主要压力放在了接口上

RESTful架构设计原则(不同公司具体细节可能不同):

  1. 在接口命名时应该用名词,不应该用动词,因为通过接口操作到是资源。
  2. 在url中加入版本号,利于版本迭代管理更加直观
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
https://www.rgc.com/v1/
  1. 对于资源的操作类型应该是通过http动词表示。
    • GET /zoos:列出所有动物园
    • POST /zoos:新建一个动物园
    • GET /zoos/ID:获取某个指定动物园的信息
    • PUT /zoos/ID:更新某个指定动物园的信息(提供该动物园的全部信息)
    • DELETE /zoos/ID:删除某个动物园
    • GET /zoos/ID/animals:列出某个指定动物园的所有动物
    • DELETE /zoos/ID/animals/ID:删除某个指定动物园的指定动物
  2. 排序规则:默认时升序,‘-’为降序;多个排序规则时以逗号间隔组合。使用sort查询参数限制
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
GET /tickets?sort=-time,created_at 
优先以time倒序显示,其次以created_at正序显示
  1. 限制返回值的字段域:明确指定输出字段列表,用于控制网络带宽和速度。使用fields查询参数来限制。
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
GET /tickets?fileds=id,subject,customer_name,time&sort=-time
返回参数列表为id,subject,customer_name,time,并且以time字段倒序显
  1. HTTP Method分别对于资源的CURD操作 保证 POST,PUT,DELETE,PATCH操作幂等性。
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
GETSELECT):从服务器取出资源(一项或多项)。
POSTCREATE):在服务器新建一个资源。
PUTUPDATE):在服务器更新资源(客户端提供改变后的完整资源)。
PATCHUPDATE):在服务器更新资源(客户端提供改变的属性)。
DELETEDELETE):从服务器删除资源。
  1. 使用SSL(Secure Sockets Layer 安全套接层)
  2. 参数和url采用蛇行命名方式。如:updated_time
  3. 服务器请求和返回的数据格式,应该尽量使用JSON,避免使用XML。在 request中的Accept和Response中的Content-Type:application/json

参考资料:

http://blog.csdn.net/jielysong117/article/details/68948972

http://www.runoob.com/w3cnote/restful-architecture.html

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-03-19 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
软件开发中常说的RESTful风格API究竟是什么
一说到REST,我想大家的第一反应就是“啊,就是那种前后台通信方式。”但是在要求详细讲述它所提出的各个约束,以及如何开始搭建REST服务时,却很少有人能够清晰地说出它到底是什么,需要遵守什么样的准则。在您将看到的这一篇文章中,我们将对REST,尤其是基于HTTP的REST服务进行详细地介绍。通过这些文章,您不仅可以了解到什么是REST,更能清晰地了解到您在编写REST服务时所需要遵守的各个守则,设计RESTful API时需要考虑的各种因素以及实现过程中可能遇到的问题等内容。
用户1212940
2022/04/13
3460
软件开发中常说的RESTful风格API究竟是什么
RESTful API设计指南
在RESTful架构中,每个网址代表一种资源(resource),所以网址中不能有动词,只能有名词,而且所用的名词往往与数据库的表格名对应。一般来说,数据库中的表都是同种记录的”集合”(collection),所以API中的名词也应该使用复数。
lyb-geek
2018/07/26
5500
RESTful API 设计指南
网络应用程序,分为前端和后端两个部分。当前的发展趋势,就是前端设备层出不穷(手机、平板、桌面电脑、其他专用设备......)。
OwenZhang
2021/12/08
7460
RESTful API 设计指南
深入理解什么是RESTful API ?
越来越多的人开始意识到,网站即软件,而且是一种新型的软件。   这种"互联网软件"采用客户端/服务器模式,建立在分布式体系上,通过互联网通信,具有高延时(high latency)、高并发等特点。   网站开发,完全可以采用软件开发的模式。但是传统上,软件和网络是两个不同的领域,很少有交集;软件开发主要针对单机环境,网络则主要研究系统之间的通信。互联网的兴起,使得这两个领域开始融合,** 现在我们必须考虑,如何开发在互联网环境中使用的软件。**
AWeiLoveAndroid
2018/09/03
3.3K0
深入理解什么是RESTful API ?
【RESTful】RESTful API 接口设计规范 | 示例
参考官方文档:https://tools.ietf.org/html/rfc2616
前端修罗场
2023/10/07
2.1K0
【RESTful】RESTful API 接口设计规范 | 示例
RESTful 最佳实践
RESTful 是目前最流行的 API 规范,适用于 Web 接口规范的设计。让接口易读,且含义清晰。本文将介绍如何设计易于理解和使用的 API,并且借助 Docker api 的实践说明。
码哥字节
2020/03/24
1.1K0
RESTful API
网络应用程序,分为前端和后端两个部分。当前的发展趋势,就是前端设备层出不穷(手机、平板、桌面电脑、其他专用设备......)。
用户1214487
2022/03/26
1.8K0
RESTful API
程序员入职避免挨骂小知识-RESTful风格
    API(Application Programming Interface,应用程序接口)是一些预先定义的接口(如函数、HTTP接口),或指软件系统不同组成部分衔接的约定。 用来提供应用程序与开发人员基于某软件或硬件得以访问的一组例程,而又无需访问源码,或理解内部工作机制的细节。
上分如喝水
2021/08/16
6980
程序员入职避免挨骂小知识-RESTful风格
什么是RESETful API 设计规范?
现在在开发中前后端都是分离开发,后端提供接口给前台,RESTful 架构,就是目前最流行的一种互联网软件架构,也相当于是接口规范
沈唁
2018/08/21
3.5K0
什么是RESETful API 设计规范?
RESTful规范
什么是RESTful 一种软件架构风格、设计风格,而不是标准,只是提供了一组设计原则和约束条件。它主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。 一、URI规范 1.不用大写; 2.用中杠 - 不用下杠 _ ; 3.参数列表要encode; 4.URI中的名词表示资源集合,使用复数形式。 5.在RESTful架构中,每个网址代表一种资源(resource),所以网址中不能有动词,只能有名词(特殊情况可以使用动词),而且所用的名词往往与数据库的表格名对应
人生不如戏
2018/05/30
2.3K0
Restful 接口设计最佳事件
本小编这一年是在一家移动互联网公司做App后端接口设计开发工作,最近组内做了一次很大的重构,就是把接口完全根据restful规范进行设计重写。这么做的目的首先是减少和前端app同事的交流成本,其次是因为restful真的已经成为最流行的一种接口设计规范,像instagram、facebooke都在使用,下面是instagram提供的在线接口文档截图。
后端技术探索
2018/08/09
9400
RESETful API 设计规范
如果你的应用很庞大或者你预计它将会变的很庞大,那 应该 将 API 放到子域下(api.example.com)。这种做法可以保持某些规模化上的灵活性。
全栈程序员站长
2022/06/29
1.8K0
后端开发必备的 RestFul API 知识
RestFul API 是每个程序员都应该了解并掌握的基本知识,我们在开发过程中设计API的时候也应该至少要满足RestFul API的最基本的要求(比如接口中尽量使用名词,使用POST 请求创建资源,DELETE请求删除资源等等,示例:GET /notes/id:获取某个指定id的笔记的信息)。最近学习过程中接触到这些东西,自己没有时间总结,所以分享一些不错的文章给大家。
Guide哥
2020/05/08
9110
后端开发必备的 RestFul API 知识
RESTful API 设计指南
网络应用程序,分为前端和后端两个部分。当前的发展趋势,就是前端设备层出不穷(手机、平板、桌面电脑、其他专用设备......)。 因此,必须有一种统一的机制,方便不同的前端设备与后端进行通信。这导致API构架的流行,甚至出现"API First"的设计思想。RESTful API是目前比较成熟的一套互联网应用程序的API设计理论。我以前写过一篇《理解RESTful架构》,探讨如何理解这个概念。 今天,我将介绍RESTful API的设计细节,探讨如何设计一套合理、好用的API。我的主要参考了两篇文章(1,2)
ruanyf
2018/04/13
1.2K0
RESTful API 设计指南
RESTful API 设计指南
简介 REST(英文:Representational State Transfer,简称REST)描述了一个架构样式的网络系统,比如 web 应用程序。它首次出现在 2000 年 Roy Fielding 的博士论文中,他是 HTTP 规范的主要编写者之一。在目前主流的三种Web服务交互方案中,REST相比于SOAP(Simple Object Access protocol,简单对象访问协议)以及XML-RPC更加简单明了,无论是对URL的处理还是对Payload的编码,REST都倾向于用更加简单轻量的
zhang_derek
2018/04/11
9730
Restful API 的设计规范
本文总结了 RESTful API 设计相关的一些原则,只覆盖了常见的场景。有些规则只是针对自己项目而言,并非其他做法都是错误的。 1. URI URI 表示资源,资源一般对应服务器端领域模型中的实体类。 URI规范 不用大写; 用中杠-而不用下杠_; 参数列表要encode; URI中的名词表示资源集合,使用复数形式; 资源集合与单个资源 资源集合: /zoos //所有动物园 /zoos/1/animals //id为1的动物园内的所有动物 单个资源: /zoos/1 //id为
Clearlove
2019/08/29
8140
Restful API 的设计规范
RESTful简介
REST这个词,是Roy Thomas Fielding在他2000年的博士论文中提出的。 Fielding,他是HTTP协议(1.0版和1.1版)的主要设计者、Apache服务器软件的作者之一、Apache基金会的第一任主席。
江米小枣
2020/06/16
9650
DjangoRestFramework,restful规范、APIview、解析器组件、Postman等
  大家还记得CBV的这个视图函数,为什么get请求就能找到类的get方法,post请求就能找到post方法,其内部有个dispatch方法来进行分发,这又怎么玩呢,看源码啦,从哪里看呢?那里先执行,就从哪里看
changxin7
2019/12/20
2.8K0
DjangoRestFramework,restful规范、APIview、解析器组件、Postman等
REST介绍与CURL应用
REST内容转载两篇文章 http://www.ruanyifeng.com/blog/2011/09/restful http://www.ruanyifeng.com/blog/2014/05/restful_api.html
程裕强
2022/05/06
7990
REST初体验
最近开发学习中用到了REST API,处于懵懂,此REST,非彼rest,不是我们理解的含义,这是一种缩写,REpresentational State Transfer,再具体一些就是Resource Representational State Transfer,直译还是不懂,看着三个单词,
bisal
2019/01/30
9110
相关推荐
软件开发中常说的RESTful风格API究竟是什么
更多 >
交个朋友
加入[架构及运维] 腾讯云技术交流站
云架构设计 云运维最佳实践
加入架构与运维学习入门群
系统架构设计入门 运维体系构建指南
加入架构与运维趋势交流群
技术趋势前瞻 架构演进方向
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验