写点什么

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

作者:知识浅谈
  • 2022 年 8 月 09 日
    吉林
  • 本文字数:1014 字

    阅读完需:约 3 分钟

绝了,这套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 的使用方法与使用规则。

发布于: 刚刚阅读数: 2
用户头像

知识浅谈

关注

公众号:知识浅谈 2022.06.22 加入

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

评论

发布
暂无评论
绝了,这套RESTful API接口设计总结_8月月更_知识浅谈_InfoQ写作社区