美文网首页
Restful Api

Restful Api

作者: 倾斜的阳光 | 来源:发表于2017-12-20 00:23 被阅读0次

RESTful 是什么?

RESTful本质是一种软件架构风格, 面向资源来设计API

解决的问题

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

设计概念和准则

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

资源

什么是资源?

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

HTTP协议-URL

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

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

HTTP协议-请求

组成格式:请求行, 消息报头, 请求正文

请求行

格式: Method Request-URI HTTP-Version CRLF

举例

GET / HTTP/1.1 CRLF

请求方法

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

HTTP协议-响应

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

状态行

HTTP-Version Status-Code Reason-phrase CRLF
HTTP/1.1 200 OK

常用状态码

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

RESTful架构与 其他架构的区别

SOAP WebService

WebService 是一种跨编程语言和操作系统平台的远程调用技术。
WebService 通过HTTP协议发送请求和接受结果时采用XML格式封装,并增加了一些特定的HTTP消息头,这些特定的HTTP消息头和XML内容格式就是SOAP协议。

效率和易用性

SOAP由于各种需求不断扩充其本身协议的内容,导致在SOAP处理方面的性能有所下降。同时在易用性方面以及学习成本上也有所增加。
RESTful由于其面向资源接口设计以及操作抽象简化了开发者的不良设计,同时也最大限度的利用了HTTP最初的应用协议设计理念。

安全性(还需探索)

RESTful 对于资源型服务接口来说很合适,同时特别适合对于效率要求很高,但是对于安全要求不高的场景。(安全性应该可以提升)
SOAP的成熟性可以给需要提供多开发语言的,对于安全性要求较高的接口设计带来便利。所以单纯从设计模式来看谁会占据主导地位没有什么意义,关键还是要看应用场景。

相关文章

网友评论

      本文标题:Restful Api

      本文链接:https://www.haomeiwen.com/subject/fdrwwxtx.html