REST和RESTFUL

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了REST和RESTFUL相关的知识,希望对你有一定的参考价值。

参考技术A REST(Representational State Transfer),表述性状态转移,定义了互联网架构原则,是一种架构风格,具体原则如下:

1.互联网所有资源都可以被抽象为资源
2.每个资源都有唯一的资源标识符
3.同一个资源具有多个表现形式(可以是json,xml等等)
4.对资源的操作不会改变资源标识符
5.所有的操作都是无状态的

主要是就是说互联网上的资源可以用一种规则来表示,对资源的操作是无状态的。

RESTFUL,是指遵守rest规则的web服务,restful是一种ROA(Resource Oriented Architecture,面向资源的架构),restful的核心概念就是资源(Resource)。

互联网中客户端和服务端的交互就是资源的表述,这种表述是无状态的,也就意味着服务端要报错资源的所有状态,客户端可以通过http协议按照规定的规则访问或者改变资源的状态,就是所谓的“表述性状态转移”。

具体表现形式如下:

GET /users 获取用户列表
GET /users/1 获取id(主键)为1的用户
POST /users 创建用户
PUT /users/1 修改id为1的用户(整条数据替换)
PATCH /users/1 修改id为1的用户(数据局部字段替换)
DELETE /users/1 删除id为1的用户

简单来说就是通过请求方法名来表示行为,url来表示操作的资源

更多例子:

GET /users/1/products 获取id为1用户下的产品列表
GET /users/1/products/1 获取id为1用户下的id为1的产品
GET /users/name/aaa/products 获取name为aaa的用户下的产品列表
GET /users/name/aaa/products/name/ppp 获取name为aaa的用户下的名为ppp的产品
POST /users/1/products id为1的用户下创建一个产品
PUT /users/1/products/1 修改id为1的用户下的id为1的产品(整条数据替换)
PATCH /users/1/products/1 修改id为1的用户下的id为1的产品(数据局部字段替换)
DELETE /users/1/products/1 修改id为1的用户下的id为1的产品

以上是关于REST和RESTFUL的主要内容,如果未能解决你的问题,请参考以下文章

Restful API官方文档

RESTful简单介绍

Restful,SAOP,SOA,RPC的基础理解

PHP restful 接口

python之干什么可以走的路线

是否可以从非 REST 部分形式组合 REST 和非 REST 操作和资源?