13. 设计RESTful API

REST从资源的角度来观察整个网络,分布在各处的资源由URI确定,而客户端的应用通过URI来获取资源的表征。获得这些表征致使这些应用程序转变了其状态。随着不断获取资源的表征,客户端应用不断地在转变着其状态,所谓表征状态转移。

因为我们需要的是一个Machine到Machine沟通的平台,需要设计一个API。而设计一个API来说,RESTFul是很不错的一种选择,也是主流的选择。而设计一个RESTFul服务,的首要步骤便是设计资源模型。

互联网上的一切信息都可以看作是一种资源。

HTTP Method Operation Performed
GET Get a resource (Read a resource)
POST Create a resource
PUT Update a resource
DELETE Delete Resource

13.1 设计RESTFul API

设计RESTFul API是一个有意思的话题。下面是一些常用的RESTFul设计原则:

13.2 REST关键目标

  • 组件间交互的可伸缩性
  • 接口的通用性
  • 组件的独立部署
  • 通过中间组件来减少延迟、实施安全策略和封装已有系统

13.3 判断是否是 RESTFul的约束条件

  • 客户端-服务器分离
  • 无状态
  • 可缓存
  • 多层系统
  • 统一接口
  • 随需代码(可选)

13.4 JSON

xml-vs-json

下一节:设计物联网系统是件有意思的事情,它需要考虑到软件、硬件、通讯等多个不同方面。通过探索不同的语言,不同的框架,从而形成不同的解决方案。