为了账号安全,请及时绑定邮箱和手机立即绑定

API如何设计

API如何设计

芜湖不芜 2019-03-13 17:15:14
阿里面试官问,你如何设计一个后台接口,貌似和模型,架构,有关系,考虑安全问题,面试官也没提示,如果是我想的这样的话,那该如何去答这块问题。设计一个面向外部的接口,貌似和API层次,数据模型,基础服务模型,业务模型,等等有关系,其实我也不知道面试官想考察什么,他也不说。汗死。也没具体场景。
查看完整描述

5 回答

?
智慧大石

TA贡献1946条经验 获得超3个赞

撇开所有的业务场景不考虑,分享一个我之前在内部做的分享文章。
远程接口设计经验分享

回到题主的疑问,阿里面试官是否在刷流氓。
我作为阿里的一个技术人员,虽然很少做面试官,不过我能打开从这个问题中猜测出当事面试官的主要考察方向。

所以这个技术问题一个开放性的问题,看你的技术知识范围和边界。

1、你可以选择抛开业务场景谈论如何设计一个API甚至一个API的框架,如果一个接口被设计为对外部的接口,那从框架上还要考虑到命名策略、向下兼容方案、用户鉴权、调用流控等技术框架引入。

2、你也可以选择从领域模型进行切分,比如更细粒度的追问业务场景,根据领域划分自己的API设计,并说明清楚你自己的思考。

举个例子:你可以针对面试官的问题,追问场景,并细化到一个具象的领域。这个过程其实也体现了你的思考方式。假设能具象到发布商品接口。发布一个商品,有一个公共的API,这个API兼容的考虑到了大部分商品所需要填写的信息;但如果要发布一个网游的商品,这里面所需要填写的信息肯定和发一个连衣裙存在非常大的差异,请问你什么时候会考虑为这种场景独立一个API,这个度你怎么理解怎么把控。

当然了,还有很多细节上的事情需要体现在你的API设计中。代码毕竟是人写的,接口与接口之间的交互背后其实是团队与团队之间的协作,如何通过一个合理的API提高团队协作的效率,利益边界划分的清晰,形成共赢的局面,是非常讲究的一个过程。

另外,就算这个问题退化为简单的机器与机器交互的性能,也有非常多的关键点要挖。

利益相关声明:我是阿里技术员工


查看完整回答
反对 回复 2019-04-16
?
开心每一天1111

TA贡献1836条经验 获得超13个赞

考虑具体业务细节,合理实际API


查看完整回答
反对 回复 2019-04-16
?
holdtom

TA贡献1805条经验 获得超10个赞

是指web service还是sdk还得封装的模块还是什么 ..


查看完整回答
反对 回复 2019-04-16
?
MMTTMM

TA贡献1869条经验 获得超4个赞

主要是想考察你平时有没有积累和总结吧。面试的时候,可以自己给出场景,自己分析,给出答案。


查看完整回答
反对 回复 2019-04-16
  • 5 回答
  • 0 关注
  • 467 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信