什么是API接⼝,具体是什么意思?
说到API,往往是和SDK放在⼀起的。
什么叫API,看⼀下餐厅⾥怎么点餐的就⾏了。
到了饭店,喊⼀场服务员,点餐。
服务员拿出来菜单给你看,你点什么,她在⼩本本上记什么。
点好了之后,再把菜单送到后厨去。
这⾥服务员就是提供服务的(不然也不叫服务员),提供什么服务呢?
点餐服务。
点餐服务需要什么呢?
谈⼀个服务,通常就是要谈输⼊是什么,输出⼜是什么。
从眼下这个例⼦来看,输⼊就是⼀道道菜品的名字(或者是ID,不知道你们见过菜品上⾯有编号,服务员只记编号的?),输出的结果就是端过来的⼀道道菜。
有了输⼊和输出,服务员就可以提供了点餐的功能,这就是API,顾客就是调⽤者,服务员就是服务的提供者。
你可以在这⾥把服务员替换成猫猫,假设⼥王⼤⼈猫猫来给你提供服务,只要输出是菜品的名字,输出是菜品,这个API就是能够正常使⽤的。
⽽且,所有的顾客都可以⽤这种⽅式来点菜的~~~
再想想,是不是有的服务员⼿⾥拿的是点餐机?想想⼀个漂亮的⼩姑娘,拿着⼀个和⼿机⼤⼩差不多的点餐机,这个点餐机,就是需要和后厨系统有交互,这种交互,就需要⼀种约束,来声明点菜功能的输⼊是什么,输出是什么。⽐如说,如果⽤户点了⼀道已经估清的菜,是不是服务员要告诉顾客⼀下?
API通常是以Http的形式提供,它隐藏的含义就是,只要你符合我定义的标准,你就可以来使⽤我。
⽐如说,服务员是中国姑娘,顾客是美国⼈,没关系,只要美国⼈能说中国话,这套API就可以使⽤。如果美国⼈只会说英语,怎么办?让和美国⼈⼀起来吃饭的中国朋友翻译成中⽂,就可以了~~
sdk那么什么是SDK呢?
当美国⼈不会说中⽂的时候,饭店⾥的⼤堂经理来了,他来给美国佬当翻译。这就是SDK,SDK⼀般都是和语⾔相关,是官⽅提供的各种不同语⾔的实现版本。
同样的,我们再把思维模式扩⼤⼀点。
除了Http这种API,内部系统集成的组件,是否也是有API?
你会发现,确实是这样的,⽐如说,JDK本⾝提供的各种API,在这⾥,API和SDK的概念没有那么清楚了,但是API本⾝的含义就是,当服务的提供⽅对外提供服务的时候,应该声明输⼊和输出和功能的明确含义。
⽽⼀组组明确声明了的输⼊,输出和功能描述,就是服务⽅提供的各种API。
⽐如说数组对外暴露的⽅法,链表对外暴露的⽅法等等。
那么,API和⽅法之间有没有明显的区别呢?暴露出去的,可被公开使⽤的⽅法,统称为API~~~
以上解释不够严谨,但是对于初学者来说,理解起来应该够了。
如果你在理解API的时候有困难,⼤概问题并不是在API上,⽽是你有没有理解清楚什么叫做封装,什么叫做服务?
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论