代码改变世界

有关RESTFulAPI的一些知识点记录

2017-06-19 21:24  核桃不是桃  阅读(392)  评论(0)    收藏  举报

RESTFulAPI不等于JSON

优秀的应该是支持多种资源的表现形式的

依据情况,灵活处理

RESTful简介及资源介绍

本质:软件架构风格

核心:面向资源

解决问题:

  • 降低开发的复杂性
  • 提高系统的可伸缩性

RESTful的设计概念与准则

  • 网络上的所有事物都可以抽象为资源
  • 每一个资源都有唯一的资源标识,对资源的操作不会改变这些标识
  • 所有的操作都是无状态的

所谓资源,就是指网络上的一个实体,或者说是一个具体信息

为什么选择RESTFUL

RESTful中HTTP协议介绍

HTTP是一个属于应用层的协议,特点是简捷、快速

HTTP-URL

scheme://host[:port]/path[?query-string][#anchor]

  • scheme:指定底层使用的协议(例如http,https或者ftp)
  • host:服务器的IP地址或者域名
  • port:端口号,默认80
  • path:资源路径
  • query-string:发送给服务器的数据
  • anchor:锚

HTTP请求

组成格式:

请求行:Method Request-URI HTTP-Version CRLF

请求方式:

  • GET  :获取资源
  • POST :附加新数据
  • HEAD :请求获取所标示的资源的响应消息报头
  • PUT  :请求服务器储存一个资源,并用Request-URI作为其标识
  • DELETE :请求服务器删除Request-URI所标识的资源
  • OPTIONS:请求查询服务器的性能,或者查询与资源相关的选项和需求

HTTP响应

组成格式:状态行、消息报头、响应正文

常用状态码:

  • 200 OK 客户端请求成功
  • 400 Bad Request 客户端请求有语法错误,不能被服务器所理解
  • 401 Unauthorized 服务器收到请求,但是拒绝提供服务(缺少授权)
  • 404 Not Found 请求资源不存在
  • 500 Internal Server Error 服务器发生不可预期错误
  • 503 Server Unavailable 服务器当前不能处理客户端的请求

RESTful架构与其他架构的区别

效率和易用性

SOPA犹豫需求不断扩充其本身协议内容,性能也有所下降。同时在易用性及学习方面都增加。

RESTful由于其面向资源接口设计以及操作抽象简化了开发者的不良设计,同时也最大限度的利用了http最初的应用协议设计理念

安全性

RESTful对于资源型服务接口很合适,同时特别适合对于效率要求高,但对安全要求不高的场合;

SOAP的成熟性可以给需要提供贵多开发语言的,对于安全性要求较高的接口设计带来便利。

如何使用RESTful

如何设计RESTful API

资源路径URI

在RESTful架构中,每个网址代表一种资源,所以网址中不能有动词,只能有名词。一般来说API中的名词应该是用复数

HTTP动词

也就是HTTP谓词,包括PUT、PATCH更新,DELETE删除,GET查找,POST增加

过滤信息

如果记录过多,就需要参数来分页、筛选或者排序

状态码

使用标准的HTTP状态码(201标识新建或修改数据成功403标识用户访问是被禁止的422表示创建对象时发生验证错误)

错误处理

如果状态码为4或5,则应该向用户返回出错信息,一般来说,返回的信息中应该将error作为键名,出错信息作为键值即可

{

  “error” : “参数错误”

}

返回结果