RESTful API 简介(学习笔记)

RESTful接口的命名规范与语义格式

RESTful是一种网络应用程序的设计风格和开发方式,可以使用xml方式来定义或者json格式来定义。RESTful适用于移动互联网厂商作为业务接口的场景,实现调用移动网络资源的功能。

动作类型:新增、修改、删除所调用的资源。

RESTful的三个要点:

1. 基于http协议URL对外暴露;

URL被视为资源,中括号的内容为可选项。

2. 使用XML或者JSON格式定义数据,不可以包含任何与展现有关的内容。比如,下图中返回了浏览器才能解析的内容(html),对于移动端app则无法使用。 

应该改为如下形式:

具体的展现由前端客户端进行渲染。

3. 根据不同的行为使用不同的请求方式。

 RESTful接口设计的注意事项

1、接口要保持幂等性。多次重复请求时,接口能够保证与预期相符的结果。

举个栗子:有一个为员工涨工资的接口,每调用一次就给员工涨500工资。

 如果不考虑幂等性,接口会这样写,当前端使用重试或者消息补偿的形式重复发送请求时,发生错误:

为了解决这个问题,就要使用乐观锁,在员工表上额外添加一个version字段代表当前数据的版本,任何对该数据修改操作时会让version字段的值加一。这个值要求附加在请求当中。

 服务端的代码也要添加对version的更改操作:

 同时sql语句要增加对version的比对:

 执行成功后数据库中的数值变为如下:

当重复执行上图中的请求时,由于version值已经变成了2,所以where筛选条件将无法得到任何数据。

除此之外,还有幂等表、分布式锁、状态机等其他实现方式。

2、标准化的响应结果集。

 data是可选项,表示额外的返回数据。code默认为0,遇到异常公司内部也要遵循统一的命名标准。

3、接口设计采用无状态方案。每一个请求访问进来都能得到相同的预期。

举个栗子。

 当数据被分配到某一个tomcat节点上,而其他节点没数据,就会发生两次请求中tomcat状态不一致。

 解决方法有两个:

1、客户端存储

 

 2、后端统一存储状态数据。所有tomcat节点访问相同的数据源。添加redis对状态数据进行存储,保证用户敏感数据。

 

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值