RESTful 接口设计

RESTful 是一种接口设计风格,充分利用了 HTTP 方法的语义。

一句话概括:看 URI 就知道要什么资源,看 http method 就知道要干什么,看 http status code 就知道结果如何。

RESTful 的特点:

  1. 统一接口:RESTful 架构风格规定,数据的元操作即增删改查,分别对应于 HTTP 方法,这样就统一了数据操作的接口,仅通过 HTTP 方法,就可以完成对数据的所有增删查改工作。
    GET 用来获取资源,是幂等且安全的,一般使用 200 表示操作成功。
    POST 用来新建资源,不幂等不安全,一般使用 201 表示对象创建成功。
    PUT 用来更新资源,是幂等的,但是不安全,一般使用 204 表示操作已经执行成功,但是没有返回数据。
    DELETE 用来删除资源,是幂等但不安全的,一般使用 204 表示操作已经执行成功,但是没有返回数据。

    幂等性:对同一 RESTful 接口的多次访问,得到的资源状态是相同的。
    安全性:对该 RESTful 接口访问,不会使服务器端资源的状态发生改变。

  2. 无状态:所谓无状态的,即所有的资源,都可以通过 URI 定位,而且这个定位与其他资源无关,也不会因为其他资源的变化而改变。

    有状态和无状态的区别,举个简单的例子说明一下。如查询员工的工资,如果查询工资是需要登录系统,进入查询工资的页面,执行相关操作后,获取工资的多少,则这种情况是有状态的,因为查询工资的每一步操作都依赖于前一步操作,只要前置操作不成功,后续操作就无法执行;如果输入一个 ur l即可得到指定员工的工资,则这种情况是无状态的,因为获取工资不依赖于其他资源或状态,且这种情况下,员工工资是一个资源,由一个 url 与之对应,可以通过 HTTP 中的 GET 方法得到资源,这是典型的 RESTful 风格。
    在这里插入图片描述
    在这里插入图片描述

接口设计技巧:

  1. URI 中使用名词而不是动词,且推荐使用复数。
    // BAD
    /getProduct
    
    // GOOD
     /products 
    
  2. 使用 _- 来让 URI 可读性更好。例如:http://www.oschina.net/news/38119/oschina-translate-reward-plan

接口示例:

传统 URL 请求格式:

  1. GET http://127.0.0.1/getUser?id=1:获取用户。
  2. POST http://127.0.0.1/addUser:新增用户。
  3. POST http://127.0.0.1/updateUser?id=1:修改用户。
  4. POST http://127.0.0.1/deleteUser?id=1:删除用户。

RESTful 请求格式:

  1. GET http://127.0.0.1/user/1:获取用户。
  2. POST http://127.0.0.1/user:新增用户。
  3. PUT http://127.0.0.1/user/1:修改用户。
  4. DELETE http://127.0.0.1/user/1:删除用户。
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值