如何设计接口(如何设计接口幂等性)

网友投稿 297 2023-03-04


本篇文章给大家谈谈如何设计接口,以及如何设计接口幂等性对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 今天给各位分享如何设计接口的知识,其中也会对如何设计接口幂等性进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

(转)对外接口设计规范

1、接口禁止方法重载,重载会在做服务SLA控制,日志监控等方面带来不便

2、接口注释必须清晰地表达如何使用,接口是同步还是异步,服务内容,参数校验规则(精度、长度、取值范围等),返回值信息,异常情况;使用场景有要求的需要重点这几个方面描述

a)不同使用场景,在注释中区分描述

b)特定使用场景下的业务规则描述

c)特定使用场景下的注意事项描述

格式上参照注释规范{*}

3、接口返回值中属性禁止使用枚举,如果返回值属性是枚举类型,会为后期升级埋下隐患(由于枚举序列化的特性导致

删除枚举值和增加枚举值都可能导致客户端反序列化失败),建议提供String类型,取值范围可以通过枚举来告诉客户端

禁止声明方式

建议声明方式

/** 强制还款标志,取值范围见{@link EnforceFlagEnum}*/

private String enforceFlag;

4、接口参数涉及取值范围选择的(比如交易码,渠道类型,身份标识),需提供对应的常量给客户端使用,谨慎使用枚举做入参

唯一性控制属性:a)如接口请求参数包含业务唯一性控制字段,需要对相关字段以及唯一性控制方式进行特别说明

b)若在唯一性控制基础之上,涉及相关业务幂等控制处理,需要进行相关详细描述

5、接口方法确保不对外抛出异常,异常情况需要通过错误码通知客户端,处理失败也需要有返回值,返回值实现可参考EcBaseResult及其子类实现

POM依赖

9、接口返回值中的方法尽量只提供基本属性的get set方法,不要提供有业务规则含义的方法(因为业务逻辑的变化会要求客户端升级jar包版本)

10、操作类的接口务必考虑幂等性控制,因为网络重发,客户端异常等都可能会引起重复调用,严重的可能会引起资损

根据业务约定的部分唯一性字段,对多次请求的数据判断是否重复提交的判断依据,比如通过外部订单号outOrderNo做唯一性控制,在唯一性控制的基础上,对请求中的其他字段进行判断,

如果全部业务数据(或关键业务数据)和已经落库的数据一致,则请求一次和请求多次都不会对业务处理产生影响,返回结果不变,

如果outOrderNo关联的其他信息与系统已经持久化的数据不一致则提示XXX参数与原先的数据不一致。

11、接口命名统一以Facade结尾,个别的SPI接口可以使用别的结尾词以便更好地表达SPI的要求,SOFA框架系统对外接口统一存放在xxx-common-service-facade

这个bundle下

12、接口必须提供有效的监控日志,配置监控报警规则监控日志输出见日志规范

13、敏感信息:接口返回对象属性字段包含敏感信息,需要做好标识,进行相关提示避免客户端打印到日志中去

金额:接口返回对象属性涉及到金额,需要描述金额的单位以及对应的币种 统一使用支付宝金额类com.iwallet.biz.common.util.money.Money

Money所在jar坐标

如何设计拖拽排序的后端接口

一开始我想到的暴力解法是每次排序将所有数据的排序都改一遍,比如下面的例子。

这种方式如果数据少还可以,但是数据量一大,接口数据的传输以及大数据的处理必然会是个问题。

这是网上看到的一个方法,为数组所有元素加上索引值。

这种方式会极大地节省接口数据传输的问题。当然也会有一些小问题,比如中间值不是整数;比如第一个元素的索引值已经变为 0;这些问题是需要后端设计策略解决的。

给数组一个从 0 开始递增的索引值 index,当拖拽移动元素后,将拖拽元素之前的和现在的位置传递给后端,后端通过两个索引值更新整个数组的 index 索引值,与前端保持同步。

这样就能和前端遍历时的索引值对应上,做到前端移动元素,后端同步排序的功能。

这个方式类似于取中值法:首先为所有元素定义六位数的索引值。当拖拽移动元素后,将拖拽元素放置位置前后的元素索引值传给后端,后端去进行索引值的计算。并通过接口响应返回新的索引值更新到前端。

我认为它和取中值的区别就在于一个是前端算完直接给后端,一个是后端进行计算。其实差不多吧。

如果是列表排序是单列的问题,那么看板的排序就是多列排序和移动的问题。我的想法是,把多列当做一列来看。排序索引上从第一列自上而下递增,然后是后续几列。

而如何跨列移动,其实就是在做拖拽排序的时候更改一下元素所在列的状态,可能是一个状态,也可能是一个 ID,其实就是比单列排序多传了一个字段而已。

java怎么根据原型图设计接口开发

大家好,又见面了,我是你们的朋友全栈君。
java web开发(一) 环境搭建讲解了如何搭建一个Java Web项目,如果你还没了解,建议先浏览下!今天这篇文章主要讲解的就是接口开发,打算使用比较古老的或者说比较原始方法实现的接口。
一.数据库设计。
假设要做一个简单的学生信息管理系统,数据库名为students_manage,并且先设计一张学生表,表名为student。
1.打开Sqlyog工具,如果还没创建连接,可以点击新建,输入名称,点击确定即可,然后在保存的连接中选择,刚刚新建的连接,只需要在密码输入框中输入,安装数据库时的设置的密码,点击连接,其他的默认即可,

怎么写 App 接口设计方案

编写接口设计方案头部必定是目录,要是在目录和正文中间插入本方案总设计师姓名和他的手机邮件等联系方式方便双方项目上对接自是极好的
一阐述面向的用户群和平台有哪些如何设计接口
二要达到怎样的设计目标,如并发量,延迟等;
三设计的系统接口可能会有哪些问题和风险,基于以上,在进行设计过程中将会采用那些技术手段;
四是阐述一些接口命名规范,字段和数据长度限制规范,最大连接时间等;
在后面概述接口按业务或非业务分为哪几大块,订单一块,账户管理一块,日志一块,文件/图片一块;
接下来详述每块分别有哪些接口,具体如何定义的等等;
最后在阐述下整个系统与哪些第三方会有交集,这些接口提供方的公司名字如何设计接口?与这些公司的技术联系人是谁,联系方式是什么,与他们的数据通信方式是什么,他们的访问地址在何处,经过一系列测试后发现的延迟情况,安全问题等等,我方是如何解决的,在本次设计的接口中有哪些用到如何设计接口了这个第三方接口; 关于如何设计接口和如何设计接口幂等性的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。 如何设计接口的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于如何设计接口幂等性、如何设计接口的信息别忘了在本站进行查找喔。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:中台和api网关(中台网关作用)
下一篇:Java统计字符串中字符出现次数的方法示例
相关文章

 发表评论

暂时没有评论,来抢沙发吧~