接口粒度和分层

我们有时候把整个业务编写成一个API,这样可以在前端方便调用。但是这样做并不合适,只用了一次HTTP请求。

这种方式是站在当前业务角度的方式考虑问题,而没有站在数据角度考虑问题。如果把所有接口合并成一个接口,这会导致任意一个小改动,导致整个接口剧烈变化。如果根据业务编写,那么整个API无法复用。如果站在数据角度,每个API保持一定独立性就可以做到的。纯粹按照功能写,没有按照数据,这个API通用性非常差,就会天天改API。

发多次API请求,有过多的HTTP连接,对服务器压力挺大的。减少HTTP连接对服务器可以节省性能。

这就是接口粒度的问题,如何控制就是经验问题(架构师大佬干的事情,我这种菜鸡先想想吧),这是非常难的,必须根据业务考虑粒度。粒度过粗,复用性不好不灵活。粒度过于细碎,客户端调用不方便,请求也多,假如异步的请求,还要数据合并。接口设计,分层,架构,性能都要考虑。

API是需要分层的。分层的目的就是在最底层提供一些粒度小,灵活性高的API。一层一层往上,粒度逐步变粗。自己本身的API视作基础数据API,然后确实业务调用数量太多的话,就在基础数据API建立业务层,然后在业务层调用基础数据API接口,然后在封装成适合访问的业务,发送到客户端去。我们经常在大项目听到基础数据层,服务层就是说这个。

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值