什么是RESTful API?
API设计规范
- 将一切数据视作资源。
- 描述对资源的操作。(增/删/改/查)
- 通过HTTP响应状态码,描述对资源的操作结果。(如:200/5xx)
期望效果:
- 看URL知道是什么资源。
- Method知道要对资源进行什么操作
- 看Response Code知道操作是否成功。
Method规范︰
用于描述操作(动词)
-
GET用于读取资源
-
POST用于创建资源
-
PUT用于更新资源(客户端提供更新后的完整资源)
-
DELETE用于删除资源
一共有八个,常用的上述四个。
URL规范︰
只使用名词,不能有动词。
Response规范:
需保持统一结构,code对齐HTTP状态码.
{
code://返回状态
data://返回数据
message://状态描述
}
优点
-
有效降低沟通成本
-
前后端解耦更彻底
-
前端更多业务灵活性
扩展
-
接口要升级如何处理?
接口升级处理:
- 版本控制:对于接口的升级,应该采用版本控制来管理不同版本的接口。可以在 URI 中包含版本号,或者使用 HTTP 头部来指定版本信息。
- 向后兼容性:尽量保持新版本接口与旧版本的向后兼容性,以便现有客户端无需修改代码即可继续使用。
- 文档更新:及时更新接口文档,包括新增的功能、修改的参数等信息,以便客户端开发人员了解变更。
- 通知用户:在进行接口升级之前,通知所有使用接口的用户,提前告知即将发生的变更,以便他们做好准备。
-
遇到事务性业务逻辑,要如何设计?
事务性业务逻辑设计:
- 事务管理:使用数据库或者编程语言提供的事务管理功能,确保事务的原子性、一致性、隔离性和持久性(ACID 特性)。
- 异常处理:在事务中捕获并处理异常,保证事务的一致性。可以进行回滚操作或者进行适当的补偿处理,以保证数据的完整性。
- 锁机制:使用合适的锁机制来保证事务的隔离性,防止并发操作引起的数据不一致。
- 性能优化:避免长时间持有事务锁或者事务嵌套过深,合理设计事务范围,以提高系统的性能和并发能力。
- 业务逻辑的封装:将事务性业务逻辑封装成独立的服务或者模块,以便复用和维护。