0
点赞
收藏
分享

微信扫一扫

SNK施努卡 - 机器人测温取样系统

菜头粿子园 2024-11-18 阅读 6

http(s)在设计时应考虑:

一、签名认证

鉴权,如jwt方式等。

二、重要参数加密

如:用户的登录密码、银行卡号、转账金额、用户身份证等。

三、IP白名单

为了进一步加强API接口的安全性,防止接口的签名或者加密被破解了,攻击者可以在自己的服务器上请求该接口。

四、接口限流

如果API接口被第三方平台调用了,这就意味着着,调用频率是没法控制的。由此,需要对重要API接口做限流

五、参数校验与限制记录条数

如:校验必填字段是否为空,校验字段类型,校验字段长度,校验枚举值等等。这样做可以拦截一些无效的请求。

在Java中校验数据使用最多的是hiberateValidator框架,它里面包含了@Null、@NotEmpty、@Size、@Max、@Min等注解。用它们校验数据非常方便。

另外提供的批量接口,一定要限制请求的记录条数,如果请求的数据太多,很容易造成API接口超时等问题,让API接口变得不稳定。

六、统一返回值与统一封装异常

API网关捕获业务异常,然后转换成统一的异常结构返回,这样能统一返回值结构。

七、请求日志

最好有traceId,可以通过它串联整个请求的日志,过滤多余的日志。

八、幂等设计

支持在极短的时间内,第三方平台用相同的参数请求API接口多次,可能是bug或者接口重试,第一次请求数据库会新增数据,但第二次请求以后就不会新增数据,但也会返回成功。

高并发下可以通过乐观锁、加唯一索引等方法保证接口的幂等性。

高并发下如何保证接口的幂等性?

九、异步处理

一般的API接口的逻辑都是同步处理的,请求完之后立刻返回结果。对于非常复杂耗时的逻辑,则需要异步处理。

在API接口中可以发送一条mq消息,然后直接返回成功。之后,有个专门的mq消费者去异步消费该消息,做业务逻辑处理,如何通知调用方:

方法一:回调第三方平台的接口,告知API接口的处理结果,很多支付接口就是这么玩的。

方法二:第三方平台通过轮询调用我们另外一个查询状态的API接口,每隔一段时间查询一次状态,传入的参数是之前的那个API接口中的id集合。

十、数据脱敏

我们可以在返回的数据中,部分内容用星号代替。如:123****888

十一、压测

上线前我们对API接口做一下压力测试,知道各个接口的qps情况。

举报

相关推荐

0 条评论