abp怎么写 接口 第1篇
如果你的API接口是对外提供的,需要保证接口的安全性。保证接口的安全性有token机制和接口签名。
token机制身份验证方案还比较简单的,就是
接口签名的方式,就是把接口请求相关信息(请求报文,包括请求时间戳、版本号、appid等),客户端私钥加签,然后服务端用公钥验签,验证通过才认为是合法的、没有被篡改过的请求。
除了加签验签和token机制,接口报文一般是要加密的。当然,用https协议是会对报文加密的。如果是我们服务层的话,如何加解密呢?
有时候,接口的安全性,还包括手机号、身份证等信息的脱敏。就是说,用户的隐私数据,不能随便暴露。
abp怎么写 接口 第2篇
保证接口的正确性,换个角度讲,就是保证更少的bug,甚至是没有bug。所以接口开发完后,一般需要开发自测一下。然后的话,接口的正确还体现在,多线程并发的时候,保证数据的正确性,等等。比如你做一笔转账交易,扣减余额的时候,可以通过CAS乐观锁的方式保证余额扣减正确吧。
如果你是实现秒杀接口,得防止超卖问题吧。你可以使用Redis分布式锁防止超卖问题。
abp怎么写 接口 第3篇
假设我们设计一个APP首页的接口,它需要查用户信息、需要查banner信息、需要查弹窗信息等等。那你是一个一个接口串行调,还是并行调用呢?
如果是串行一个一个查,比如查用户信息200ms,查banner信息100ms、查弹窗信息50ms,那一共就耗时350ms
了,如果还查其他信息,那耗时就更大了。这种场景是可以改为并行调用的。也就是说查用户信息、查banner信息、查弹窗信息,可以同时发起。
在Java中有个异步编程利器:CompletableFuture
,就可以很好实现这个功能。
abp怎么写 接口 第4篇
什么是加锁粒度呢?
我们写代码时,如果不涉及到共享资源,就没有必要锁住的。这就好像你上卫生间,不用把整个家都锁住,锁住卫生间门就可以了。
比如,在业务代码中,有一个ArrayList因为涉及到多线程操作,所以需要加锁操作,假设刚好又有一段比较耗时的操作(代码中的slowNotShare
方法)不涉及线程安全问题,你会如何加锁呢?
反例:
正例:
abp怎么写 接口 第5篇
单一性是指接口做的事情比较单一、专一。比如一个登陆接口,它做的事情就只是校验账户名密码,然后返回登陆成功以及userId
即可。但是如果你为了减少接口交互,把一些注册、一些配置查询等全放到登陆接口,就不太妥。
其实这也是微服务一些思想,接口的功能单一、明确。比如订单服务、积分、商品信息相关的接口都是划分开的。将来拆分微服务的话,是不是就比较简便啦。