RESTFUL是一种网络应用程序的设计风格和开发方式,基于HTTP,可以使用XML格式定义或JSON格式定义。RESTFUL适用于移动互联网厂商作为业务接口的场景,实现第三方OTT调用移动网络资源的功能,动作类型为新增、变更、删除所调用资源。
REST(英文:Representational State Transfer,简称REST)表述性状态转移。REST 指的是一组架构约束条件和原则。满足这些约束条件和原则的应用程序或设计就是 RESTful。
RESTFUL特点包括:
每一个URI代表1种资源;
客户端使用GET、POST、PUT、DELETE4个表示操作方式的动词对服务端资源进行操作:GET用来获取资源,POST用来新建资源(也可以用于更新资源),PUT用来更新资源,DELETE用来删除资源;
通过操作资源的表现形式来操作资源;
资源的表现形式是XML或者HTML;
客户端与服务端之间的交互在请求之间是无状态的,从客户端到服务端的每个请求都必须包含理解请求所必需的信息。
REST定义了6个架构约束
,它们构成了任何Web服务 - 一个真正的RESTful API。
- 统一界面
- 客户端服务器
- 无状态
- 可缓存
- 分层系统
- 按需代码
REST资源命名最佳实践
- 使用名词来表示资源
RESTful URI应该引用作为事物(名词)的资源而不是引用动作(动词),因为名词具有动词不具有的属性 - 类似于具有属性的资源。资源的一些示例是:
系统的用户
用户帐户
网络设备等
他们的资源URI可以设计如下:
http://api.example.com/device-management/managed-devices
http://api.example.com/device-management/managed-devices/{device-id}
http://api.example.com/user-management/users/
http://api.example.com/user-management/users/{id}
为了更清楚,让我们将资源原型划分为四个类别(文档,集合,存储和控制器),然后您应始终将资源放入一个原型,然后始终如一地使用它的命名约定。为了一致的缘故,抵制设计资源的诱惑,这些资源是不止一个原型的混合体。
- 一致性是关键
使用正斜杠(/)表示层次关系
不要在URI中使用尾部正斜杠(/)
使用连字符( - )来提高URI的可读性
不要使用下划线(_)
在URI中使用小写字母
- 切勿在URI中使用CRUD函数名称
创建模型URI
现在,当对象模型准备就绪时,是时候决定资源URI了。在此步骤中,在设计资源URI时 - 关注资源与其子资源之间的关系。这些资源URI是RESTful服务的端点。
在我们的应用程序中,设备是顶级资源。并且配置是设备下的子资源。让我们写下URI。
/devices
/devices/{id}
/configurations
/configurations/{id}
/devices/{id}/configurations
/devices/{id}/configurations/{id}
请注意,这些URI不使用任何动词或操作。在URI中不包含任何动词非常重要。URI应该都只是名词。