绝了,这套RESTful API接口设计总结

举报
知识浅谈 发表于 2022/08/09 08:33:33 2022/08/09
【摘要】 绝了,这套RESTful API接口设计总结

🍁 作者:知识浅谈,CSDN签约讲师,CSDN博客专家,华为云云享专家,阿里云星级博主
📌 擅长领域:全栈工程师、爬虫、ACM算法
💒 公众号:知识浅谈
🔥 联系方式vx:zsqtcc

🤞RESTful API接口设计总结🤞

  • RESTfu是一种网络应用程序的设计风格和开发方式,基于HTTP,可以使用XML格式定义或JSON格式定义。
  • RESTful适用于移动互联网厂商作为业务接口的场景,实现第三方OTT调用移动网络资源的功能,动作类型为新增、变更、删除所调用资源。

📍Restful接口使用

🍮基于HTTP协议URL对外暴露

  • 标准格式
    • http(s): //域名:端口[/版本]/资源1[/子资源2/…/子资源n][/路径变量]
  • 多版本控制
    • GET http(s): //域名:端口/v1.1/blog/article/10
  • 数据查询采用复数
    • GET http(s): //域名:端口/v1.1/blog/articles?categoryId=10
  • 反面典型
    • GET http(s): //域名:端口/v1.1/blog/articles?categoryId=10

🍮使用XML或JSON格式定义

要使用这种类型的返回数据。

GET http(s)://edu.lagou.com/employee/10
{
	"code":"0",
	"message":"success",
	"data":{
		"name":"张三""age":36
	}
}

不要使用带标签的如<div>name:“小王”</div> 这种带有标签的。

🍮不同的行为使用不同的请求方式

在这里插入图片描述

📍Restful接口设计规则

🍮接口保证幂等性

幂等性:当多次重复请求时,接口能够保证与预期相符的结果
例如:我们设计了一个为员工涨薪的接口,本次请求发送后为1号员工涨薪500元。
幂等性的设计方法:

  1. 前端传递token,存储在redis使用token的唯一性。
  2. Redis的Setnx方法,防止幂等性问题。
  3. 使用版本号{乐观锁}解决幂等性问题
  4. 使用主键的唯一性约束

🍮标准化响应的结果集

  • 在标准化的响应结构中要包含code、message两项,分别对应了服务器处理结果与返回的消息内容,除此以外data属性是可选项,包含从响应返回的额外数据,如查询结果、新增或更新后的数据。
  • 在语义层面,也要遵循相同的规则例如当服务器处理成功,code固定等于0,如果遇到异常情况,公司内部也要遵循统一的code命名标准例如:code以1XX开头代表参数异常,2XX开头代表数据库处理异常。当然不同的公司有不同的命名规则,一定要提前定义好并严格要求开发团队严格按语义使用编码。

🍮接口无状态设计

这个指的是不要在单个服务器节点上存储用户的状态信息,分布式系统中可能会出现状态不同步,所以要接口无状态。
错误例子:只有单个服务节点保存了会话状态,是不好的。
在这里插入图片描述

解决方案:

📐第 1 种: 客户端存储认证数据
在这里插入图片描述
📐第 2 种 :后台统一存储状态数据
在这里插入图片描述

🍚总结

以上就是关于Restful的使用方法与使用规则。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。