RESTful是目前最流行的API设计规范,它是用于Web数据接口的设计;REST它是 Representational State Transfer的简称,中文的含义是: "表征状态转移" 或 "表现层状态转化"

1 发展来源和必要性

RESTful API 设计由 Roy Fielding 博士在其 2000 年的博士论文中定义。后来经过社区以及互联网发展的趋势需要就慢慢成为了一个标准;

目前我们实现一个RESTful接口,可以在web端 pc端及移动端,实现多端同时调用,而且前后端分离,使得前端开发无须关注过多后端业务逻辑;这是我们目前想当然的一个使用;其实在之前我们的页面、数据以及模板渲染工作都是在服务端进行的;也就是说以前开发者都是全栈开发;像我们上学时的.net Form等.net框架、flex开发;都是服务器端渲染,一个人进行前端页面以及后台数据查询、数据和页面模板绑定工作,一人负责多项工作;

维护工作比较困难;这里可能更应该强调是目前这个互联网环境下 换人的成本太大;

所以这里所说的维护并不是人员的维护系统难度大小,更可能是如果一个这样的系统直接换人去维护的难度和成本大小,因为需要找一个对前端、服务端、数据查询等都需满足的人,这对于咱目前各大企业如此频繁的人员流动的市场简直就是噩梦,从这个角度来看,前后端分离势在必行,可能不仅仅是因为技术原因,市场才是主要导向吧;

所以伴随着前后端分离潮流,RESTful api标准就慢慢流行起来了;

Rest设计原则

后端实现的接口怎么才能算是一个rest风格的接口呢,需要满足以下风格

2.1  每一个URI代表一种资源

这个很好理解,就是一个URI只代表一种类型的资源

http://xxx.com/api/users;        // 获取所有用户信息
http://xxx.com/api/teachers;     // 获取所有老师信息
http://xxx.com/api/areas;        // 获取所有区域信息

2.2 同一种资源有多种表现形式(xml/json)

一种资源可以用多种格式返回,客户端请求的时候,我们可以在请求头中设置参数,要求restful返回指定类型的数据,这是RESTful接口需要满足的元原则;比如

Accept:application/xml

请求时设置返回形式是xml,如使用ajax请求,则需要设置contentType:application/xml

Accept:application/json

请求时设置返回形式是json,如使用ajax请求,则需要设置contentType:application/json

2.3 所有的操作都是无状态的

http请求本身是无状态的,而RESTful是建立在无状态http协议基础上的;所以本身RESTful的各种请求也是无状态的;

怎么理解这个无状态呢

可以这么理解:协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。但另一方面,在服务器不需要先前信息时它的应答就较快。

举个

[API接口设计] RESTful 规范相关推荐

  1. API接口设计之RESTful软件架构风格

    说到API接口设计有的喜欢用Web Service,有的喜欢用WCF,当然也有还在用最原始的ashx,aspx页面的.无论采用什么方式能很好的满足业务需求就ok,但是不同的方式在扩展性.易用性,可维护 ...

  2. 16. 设计模式之契约原则:如何做好 API 接口设计?

    一.契约式设计原则:API 设计的指导书 无论是架构设计还是编码实现,现在都越来越离不开接口设计,接口可以说是新时代的"集装箱",是得到了几乎所有人一致共识的通用标准. GoF 在 ...

  3. API接口设计最佳实践

    目录 目录 前言 API接口设计 Token设计 API接口设计原则 1.明确协议规范 2.统一接口路径规范 3.统一接口版本管理 4.为你的接口设定调用门槛 5.接口返回规范 6.接口安全规范 7. ...

  4. API接口通讯参数规范(2)

    针对[API接口通讯参数规范]这篇文章留下的几个问题进行探讨. 问题1 试想一下,如果一个http请求返回一个500给我们,那我们是不是都不用看详情都知道该次请求发生了什么?这正是一个标准的结果码意义 ...

  5. Swagger3 API接口文档规范课程(Java1234)(内含教学视频+源代码)

    Swagger3 API接口文档规范课程(Java1234)(内含教学视频+源代码) 教学视频+源代码下载链接地址:https://download.csdn.net/download/weixin_ ...

  6. API接口设计,需要注意这4点

    原文 | http://www.woshipm.com/pd/2772820.html 原则上API接口设计一般出现在开发的详细设计中,但是随着诸多公司建立开放平台,产品经理也逐渐需要能理解API接口 ...

  7. 算法API接口文档规范

    算法API接口文档规范 参考:百度AI开放平台:https://ai.baidu.com/ai-doc/FACE/yk37c1u4t 接口功能介绍 1.人脸比对:比对两张图片中人脸的相似度,并返回相似 ...

  8. API接口的RESTful设计

    前言:今天我们来聊一聊在基于SpringBoot前后端分离开发模式下,如何友好的返回统一的标准格式以及如何优雅的处理全局异常. 一般系统的大致整体架构图如下: 因为本篇博客主要介绍的是API接口,其他 ...

  9. api接口设计相关总结

    写过不少接口,不过一直没有去总结,网上搜了一下,大同小异,此文根据以下几个链接整理修改: https://segmentfault.com/a/1190000004051246 http://blog ...

最新文章

  1. Android获取设备状态栏status bar高度的正确姿势
  2. 黑马lavarel教程---6、简单验证
  3. 从银行网点拒绝普通客户 看互联网银行的“微众市场
  4. 到底能不能做一辈子的程序员——大龄程序员将何去何从
  5. 【推荐系统】一文梳理联邦学习推荐系统研究进展
  6. 推荐一个 Chrome 浏览历史记录管理的扩展 - History Trends Unlimited
  7. 如何创建可扩展的Java应用程序
  8. OpenCV学习(二十一) :计算图像连通分量:connectedComponents(),connectedComponentsWithStats()
  9. 奥鹏数据库应用系统设计下列关于php_南开大学《主干课2-数据库应用系统设计》2020秋主干课考试...
  10. 1.4编程基础之逻辑表达式与条件分支 02 输出绝对值
  11. python使用suds来调用webservice
  12. Okhttp实用封装
  13. ppt流程图箭头分叉_实用模版大全(最全箭头、流程图).ppt
  14. 解决联想小新笔记本电脑触摸板失灵
  15. 仿 Drools 决策表 Groovy 实现
  16. 玩到全身僵直!07年最强的9款PC游戏
  17. coursera-dl 报错 AttributeError (‘HTMLParser’ object has no attribute ‘unescape’)
  18. win 2003 SP2 (32位X86) 中文版 升级补丁包 下载地址 光盘整合集成方法
  19. 反思,让人难以忍受的人
  20. 堡垒机、运维堡垒机、开源堡垒机、云堡垒机全面解析

热门文章

  1. 什么是节流和防抖?有什么区别?为什么做这个处理?
  2. 运输费用在ERP 系统中是如何处理
  3. 开源精神_开源精神-网络礼节可能微妙
  4. 一文MOS管串联并联驱动应用解析-KIA MOS管
  5. 最新2016年苹果公司开发者帐号申请流程
  6. 【TVOS】媒体融合 智慧乡村——TVOS绍兴试点项目正式启动
  7. PF_RING 6.0.2发布
  8. yolov5模型问题解决SPPF找不到、yolov5smlx.pt文件下载、coco128文件下载、coco128yaml文件更改、coco128数据集not exist、BrokenPipeErro
  9. IGMP Snooping和IGMP Proxy区别
  10. 【前端】Angular的布局(响应式布局)笔记3