平台接口建设规范

Java35

建设目标

平台接口建设规范旨在界定接口开发、测试和使用的框架边界,定义技术目标和要求,并提供完整的接口文档,为自有平台和第三方平台提供数据和服务支持。

[En]

The platform interface construction specification aims to delimit a framework boundary for interface development, testing and use, define technical objectives and requirements, and provide complete interface documentation to provide data and service support for self owned platforms and third-party platforms.

建设标准

接口规范

命名规范

在标准的RESTful架构中,每个网址代表一种资源(resource),所以网址中不能有动词,只能有名词。

据观察,大多数平台在接口设计中不能完全遵循该规范。我的建议是,接口命名和参数命名必须基于业务和理解需求进行合理设计,以确保简单、实用和易于理解。

[En]

It is observed that most platforms cannot fully follow this specification in interface design. My suggestion here is that both interface naming and parameter naming must be reasonably designed based on business and understanding needs to ensure simplicity, pragmatism and ease of understanding.

幂等性

Idempotency意味着任何多个请求的执行结果与一个请求的结果具有相同的影响。无论查询多少次,查询操作都不会影响数据本身,因此查询操作本身是幂等的。但是,每次执行新操作时,数据库都会更改,因此它是非幂等的。

[En]

Idempotency means that the execution result of any multiple requests has the same impact as the execution result of one request. No matter how many times you query, the query operation will not affect the data itself, so the query operation itself is idempotent. However, the database will change every time the new operation is executed, so it is non idempotent.

关于幂等性的实现方式有很多种,比如前端禁用、参数传入唯一Key值或者先查询后操作等,这里不做详细概述。一般来说接口中新增操作、部分带条件的删除和修改操作都是要考虑幂等性的,这也是保证数据一致性和安全性的必要措施。

输入验证码查看隐藏内容

扫描二维码关注本站微信公众号 Johngo学长
或者在微信里搜索 Johngo学长
回复 svip 获取验证码
wechat Johngo学长

相关文章
RabbitMQ 工作队列 Java

RabbitMQ 工作队列

每日一句 如果你执意追逐我的幻影,迟早会被真正的我打败。 https://www.ylcoder.top/post/1649241412 概述 工作队列(也称为任务队列)的主要思想是避免立即执行资源密...
Metro 界面设计案例 Java

Metro 界面设计案例

Metro是微软的一贯设计风格,相对Google的Material Desgin ,Metro更加的简洁,清晰明了。 Material 的设计也是很不错的,而且在Android,Web上都能经常看到M...
Hexo 必装插件 Java

Hexo 必装插件

可以优化博客路径,默认路径 https://xcmaster.com/2022/07/07/hexo必装插件,还...
15分钟学会JWT使用 Java

15分钟学会JWT使用

什么是JWT? JSON Web Token ,通过数字签名的方式,以JSON对象为载体,在不同的服务终端之间安全的传输信息。 jwt 可以生成 一个加密的token,做为用户登录的令牌,当用户登录成...
CodeSmith Template Model Output Java

CodeSmith Template Model Output

背景:上学那会儿就接触CodeSmith,是一款非常优秀的代码自动生成工具。以前写过好些基本模版,可惜早不知道扔到哪儿去了,如今只能重新开始,把它捡回来,加油。 效果:将数据库 DataBase 应用...
JVM-垃圾回收机制 Java

JVM-垃圾回收机制

引用计数法 可达性分析 Java 中常见的垃圾回收算法 标记-清除算法 复制算法 标记-整理算法 分代回收算法 内存分配机制 Minor GC 和 Full GC 垃圾收集器 在 JVM 进行垃圾回收...
Jenkins 强制停止 job 执行 Java

Jenkins 强制停止 job 执行

0.背景 某天,Jenkins 运维支持群里,有同学反馈说,点击 job 页面的取消执行按钮不生效,job 执行停不下来。 收到这个反馈后,我自己也试了下,发现确实点页面取消按钮不管用,点了好几次,j...
MVCC(多版本并发控制)详解 Java

MVCC(多版本并发控制)详解

在 MySQL InnoDB存储引擎下,RC、RR 基于 MVCC 进行并发事务控制, MVCC 是基于"数据版本"对并发事务进行访问 用一个例子来解释一下,下面是一张事务执行流程图: 稍微解释一下:...
Spider Java

Spider

流程: 迭代进行:种子url->Element遍历获取超链接lin->作为新种子id ⚠️注意频率和遍历深度 1.设定url及请求参数 headers = {"user-agen...
Redis的Java客户端 Java

Redis的Java客户端

Redis 的 Java 客户端 Jedis 优点:以 Redis 命令作为方法名称,学习成本低廉,简单且实用 缺点:Jedis 的实例是线程不安全的,在多线程的环境下需要基于线程池来使用 lettu...
Java 并发编程 Java

Java 并发编程

基础知识 1. 为什么要使用并发编程 提升多核CPU的利用率:一般来说一台主机上的会有多个CPU核心,我们可以创建多个线程,理论 上讲操作系统可以将多个线程分配给不同的CPU去执行,每个CPU执行一个...
mybatis批量操作 Java

mybatis批量操作

List类型 Mapper.java public int updateAccount(List<orderjob> orderJobs);</orderjob> Mapper...
Java 线程创建与常用方法 Java

Java 线程创建与常用方法

进程与线程 进程 程序由指令和数据组成,但这些指令要运行,数据要读写,就必须将指令加载至 CPU,数据加载至内存。在指令运行过程中还需要用到磁盘、网络等设备。进程就是用来加载指令、管理内存、管理 IO...