restful风格接口

URL定位资源,用HTTP动词(GET,POST,DELETE,DETC)描述操作。

识别(identify)、 表示(represent) 、交互(interact with)。

看Url就知道要什么看http method就知道干什么看http status code就知道结果如何

1. REST描述的是在网络中client和server的一种交互形式;REST本身不实用,实用的是如何设计 RESTful API(REST风格的网络接口);

2. Server提供的RESTful API中,URL中只使用名词来指定资源,原则上不使用动词。“资源”是REST架构或者说整个网络处理的核心。比如:

http://api.qc.com/v1/newsfeed: 获取某人的新鲜;

http://api.qc.com/v1/friends: 获取某人的好友列表;

http://api.qc.com/v1/profile: 获取某人的详细信息;

3. 用HTTP协议里的动词来实现资源的添加,修改,删除等操作。即通过HTTP动词来实现资源的状态扭转:

GET 用来获取资源,

POST 用来新建资源(也可以用于更新资源),

PUT 用来更新资源,

DELETE 用来删除资源。比如:

DELETE http://api.qc.com/v1/friends: 删除某人的好友 (在http parameter指定好友id)

POST http://api.qc.com/v1/friends: 添加好友

UPDATE http://api.qc.com/v1/profile: 更新个人资料

4. Server和Client之间传递某资源的一个表现形式,比如用JSON,XML传输文本,或者用JPG,WebP传输图片等。当然还可以压缩HTTP传输时的数据(on-wire data compression)。

5. 用 HTTP Status Code传递Server的状态信息。比如最常用的 200 表示成功,500 表示Server内部错误等。

1、REST 是面向资源的,这个概念非常重要,而资源是通过 URI 进行暴露。

比如:左边是错误的设计,而右边是正确的

GET /rest/api/getDogs --> GET /rest/api/dogs 获取所有小狗狗 GET /rest/api/addDogs --> POST /rest/api/dogs 添加一个小狗狗 GET /rest/api/editDogs/:dog_id --> PUT /rest/api/dogs/:dog_id 修改一个小狗狗 GET /rest/api/deleteDogs/:dog_id --> DELETE/rest/api/dogs/:dog_id 删除一个小狗狗

2、REST很好地利用了HTTP本身就有的一些特征,如HTTP动词、HTTP状态码、HTTP报头等等。

HTTP动词GET 获取一个资源 POST 添加一个资源 PUT 修改一个资源 DELETE 删除一个资源 HTTP状态码200 OK 400 Bad Request 500 Internal Server ErrorHTTP报头Authorization 认证报头 Cache-Control 缓存报头 Cnotent-Type 消息体类型报头 ......

怎么用RESTful

1、每个资源使用2个URL,网址中只能有名词

2、对于资源的操作类型由HTTP动词来表示

3、统一的返回结果

4、返回正确的状态码

5、允许通过HTTP内容协商,建议格式预定义为JSON

6、对可选发杂的参数,使用查询字符串(?)

7、返回有用的错误信息(message)

8、非资源请求用动词,这看起似乎和1中的说法有矛盾,但这里指的是非资源,而不是资源

-- 完 --

【推荐阅读】

我们计划免费招收300个学生学习人工智能专业

restapi如何传图片_如何设计restful风格接口相关推荐

  1. 『政善治』Postman工具 — 3、补充:restful风格接口的项目说明

    补充:restful风格接口的项目说明 (一)RESTful架构风格特点 1.统一接口风格 http://服务器地址:端口号[/项目名称/版本/资源] http://:为我们HTTP协议的访问头标准. ...

  2. Java面试之RESTful风格接口

    1.Restful风格接口简介: 答:Restful这个词,是一个外国人Roy Thomas Fielding在2000年提出的.这个Fielding将他对互联网软件的架构原则,定名为REST,即Re ...

  3. SpringBoot2.0基础案例(01):环境搭建和RestFul风格接口

    一.SpringBoot 框架的特点 SpringBoot2.0 特点 1)SpringBoot继承了Spring优秀的基因,上手难度小 2)简化配置,提供各种默认配置来简化项目配置 3)内嵌式容器简 ...

  4. restful风格_什么是RESTful风格的API设计?

    随着移动互联网的兴起,RESTful风格的API设计也随之流行起来,但我们说了那么多RESTful设计,它到底是什么?本篇文章带大家来了解一下它的真实面目. RESTful概念 首先,我们需要明确的是 ...

  5. 前端请求restful风格接口怎么传参_浅谈Restful API 的请求规范

    前言 在SpringMVC架构上进行开发,开发者一直在使用jsp.valocity或者其他页面模版作为表现层面,前端工程师需要将设计师的设计图转换为静态的html页面,然后交付给后端将静态的html页 ...

  6. 如何设计RESTful风格API

    REST -- REpresentational State Transfer 直译:表现层状态转移.这个中文直译经常出现在很多文章中.尼玛,谁听得懂"表现层状态转移",这是人话吗 ...

  7. 通俗易懂RESTful,如何设计RESTful风格API

    REST – REpresentational State Transfer 直译:表现层状态转移.这个中文直译经常出现在很多文章中.尼玛,谁听得懂"表现层状态转移",这是人话吗? ...

  8. 抽象类和接口设计_如何设计类和接口

    抽象类和接口设计 本文是我们名为" 高级Java "的学院课程的一部分. 本课程旨在帮助您最有效地使用Java. 它讨论了高级主题,包括对象创建,并发,序列化,反射等. 它将指导您 ...

  9. 什么是Restful风格接口?

    写这篇文章的初衷是项目组的小伙伴不懂什么叫Restful. 1.定义:Restful风格的API是一种软件架构风格,设计风格而不是标准,只是提供了一组设计原则和约束条件.它主要用于客户端和服务器交互类 ...

最新文章

  1. 比特币黄金BTG遭遇51%算力攻击,即将归零?
  2. oracle 日累计月,Oracle按月份累计求和
  3. 游戏中的颜色:深度解析游戏设计工具
  4. python模块下载失败_python 安装tushare模块出错的一个解决方法
  5. 不用ajax实现动态分页,详解ajax +jtemplate实现动态分页
  6. 生成随机码,保存随机文件.
  7. 姚班天才少年鬲融凭非凸优化研究成果获得斯隆研究奖
  8. 《大数据》2015年第3期“研究”——大数据流式计算:应用特征和技术挑战
  9. word2vec C源码解析
  10. Linux find 命令概览
  11. 《Mining Text Data》阅读笔记---第1章 An Introduction to Text Mining
  12. web前端入门笔记:JSON
  13. docker安装mySQL 8
  14. 会扫地炒菜,将来机器人当钟点工
  15. C语言编程入门——程序练习(下)
  16. widnows下lua开发环境luadist LuaRocks搭建
  17. windows系统引导配置命令
  18. 超级详细配置SSM (Intellij idea + Maven + Spring + SpringMVC + MyBatis + c3p0 )
  19. 【Git】Git入门
  20. 微信小程序超级占内存_实测:微信小程序占多少内存?或许真没有你想象的那么“小”!...

热门文章

  1. CSDN 2020博客之星投票进行中:送你喜爱的博主C位出道!
  2. 《统计学习方法》代码全解析——第四部分朴素贝叶斯
  3. js table多层嵌套_只会console.log?8个高效调试js的console方法
  4. c++ windows 蓝牙库_c++ - “是否有一个多操作系统蓝牙库?”后续:QT Linux到Windows 10蓝牙 - 堆栈内存溢出...
  5. 换了路由器电脑都连不上网了_换了新路由器电脑连不上网
  6. Facebook产品更新,官方通知你收到了吗?
  7. Leetcode每日一题:164.maximum-gap(最大间距)
  8. Java基础(六)——容器
  9. 机器学习实战(四)逻辑回归LR(Logistic Regression)
  10. MFC中App、Doc、MainFrame、View各指针的互相获取