考虑兼容性问题
【背景】不同于web、小程序等,移动端APP存在多个版本共存的情况。每个版本原生部分会进行版本迭代,后端也会进行。但是用户可能比较懒,仍然使用版本的APP不进行升级。对于已经升级后的后端,后端代码需要考虑如何兼容多个版本的APP。尤其是对于界面部分的变化。
前端传递版本号字段,根据版本号设定不同的代码逻辑
股票交易程序化接口,接口URL:api.xxx.com/api?versionid=v1&..
if(versionid != null){
//在前端传过来的字段中增加一个版本号字段,如果不为null。那么就走新股票交易程序化接口,接口
}esle{
// 旧的股票交易程序化接口,接口
}
优点:实现简单,缺点:代码结构被破坏掉了,存在用户多个版本的,必然代码结构很不好。
大版本强制更新,小版本考虑更新这种方式对于小版本完全不推荐,用户体验特别不好。
根据不同的版本,调用不同的股票交易程序化接口,接口。
版本1 == login/login/v1
版本2 == login/login/v2
版本3 == login/login/v3
优点:分支版本之间相互独立,代码也容易维护。缺点:代码量大,增加维护的工作量
如果条件允许,可以部署多台服务器,不同的版本股票交易程序化接口,接口对应不同的站点服务器。根据Ngnix或者APIGateway进行请求的分发,分发给对应的站点服务器。
其实数据库表的兼容性也是如此,尽量增加字段而不是修改字段。
如果改动很大,很难做到兼容性,那么就得强制性升级了。
其他维度对一个股票交易程序化接口,接口的好坏进行设定?
resultful风格
前后端数据分离
版本控制
错误码的定义
安全性控制,http还是https
股票交易程序化接口,接口的种类:
普通股票交易程序化接口,接口后端提供给前端调用的股票交易程序化接口,接口。一般是http协议,对于登录是https?提供给关联方调用的股票交易程序化接口,接口方式直接http调用方式通过dubbo来实现开通防火墙,配置是否采用https协议,安全证书?需要一个auth验证?如果是外部股票交易程序化接口,接口呢?比方说公共股票交易程序化接口,接口,提供给外网所有其他系统调用,应该怎么办?调用其他系统的股票交易程序化接口,接口
股票交易程序化接口,接口之间的调用
现在业界流行的微服务之间是相互独立部署的,从大的讲每个系统可以看成一个微服务,不同服务之间需要相互通信,常用的手段是同步的HTTP/REST、远程服务调用或者异步方式的ActiveMQ方式。简单点都是直接http调用,但是会出现的问题是如果调用失败怎么办?所以如果有多实例部署的情况下,还是选择使用dubbo方式,股票交易程序化接口,接口提供方作为生产方,股票交易程序化接口,接口调用方作为消费者,使用Zookepper作为注册中心,实现对股票交易程序化接口,接口的注册和发布,如果提供的某个股票交易程序化接口,接口失败了,就会换另外一个股票交易程序化接口,接口。
股票交易程序化接口,接口效率问题的考虑。效率过低直接导致用户体验过慢。一般会出现的问题,数据库查询层面。也有可能是调用第三方股票交易程序化接口,接口响应过慢导致的。
股票交易程序化接口,接口的并发调用,如果多个用户同时操作某个功能。会不会导致并发问题。
防重复点击问题?不是每一次点击都是一次调用吗?下订单,点击多次,股票交易程序化接口,接口的幂等性问题是如何解决的?
0、股票交易程序化接口,接口如何支持异步调用,如何支持大量请求调用、压力测试?
AsyncRestTemplate支持REST客户端的异步无阻塞请求。
股票交易程序化接口,接口隔离原则
如果把这些点考虑进去了,股票交易程序化接口,接口设计是一个很完美的事情。
股票交易程序化接口,接口限制流量。秒杀系统或者某个股票交易程序化接口,接口被人一顿逛调,调死了怎么办?限流和熔断服务降级之类的操作。
文章为作者独立观点,不代表股票交易接口观点