什么是接口(API)?

一直没明白,是什么意思,查过百度也查过GG,但是感觉还是不明白,有没有通俗一点方式解释一下?
我自己的理解是这样,别人提供一个方法给你,你调用这个方法返回给你一个东西,这叫接口么?那么前端方面所说的接口是什么?有些不懂了,求指导。

阅读 26.2k
评论 2013-02-19 提问
    8 个回答
    公子
    • 36k

    举两个例子:
    1. 新浪微博是一个网站,所有的数据都是在新浪微博上的。新浪微博提供一整套的接口,调用接口我们可以获取到里面的数据。(相当于你的理解)
    2. Windows是一个封装好的系统,按道理用户是没有权在Windows里头干任何事的,但是Windows提供了一整套的接口,调用接口我们可以操作Windows做出一些行为。

    所以我个人的理解是利用接口,我们可以对一个封装好的整体进行操作,不仅仅是获取数据(前端说的可能偏向这个方面吧,从整体获取或者向整体提交数据),还可以对整体进行操作。平常写的类也可以算是提供了接口,类是整体,类的成员函数就是接口。

    评论 赞赏 2013-02-19

      你的问题让人糊涂啊,接口与API不一定等价。

      1.接口。js原生是没有接口这一个概念的,不过可以轻易的模拟出来(《javascript设计模式》里面就介绍了这种方法)。而模拟出来的接口,自然就与别的OOP语言的接口类似。以Java为例,接口其实就是一种约定,凡是继承了这种接口的类均具有该接口所规定的方法,所以程序员必须实现这些方法。同时,对于编译器而言,因为Java是单继承的,所以用接口继承就可以让多态更加灵活。

      2.API。js里面的API就是指宿主提供的API,如浏览器或NodeJs提供的API。而API可以类比为“请神上身”,当你使用了某一个API,你就是请了某个神跟你附体,你就可以使用它的技能。如用了document.getElementById那么你就有了相应的能力。否则你自己是没这个能力的。

      评论 赞赏 2013-02-20
        hackerws
        • 1.4k

        通俗点总结:接口就是在不干预程序内部源码的情况下,直接使用封装好的代码所提供的各种功能(平时我们调用类库,创建类库对象并调用其方法/属性,其实就是在使用接口;类库就是提供的一整套接口,类库提供的各个方法/函数......等类成员......就是各个接口。)

        评论 赞赏 2016-07-12

          返回值 方法名(参数1, 参数2 ...) 这就可以认为是接口

          评论 赞赏 2013-02-19
            Airy
            • 2.3k

            接口:故名思议就是提供转接的口子。

            你可以理解为遵循同一个规则的多个程序之间交换数据的一种方式。

            往大了说,有网络接口。例如以 HTTP GET 方式请求 http://sf.gg 并获取返回值, http://sf.gg 就可以视为一个接口。MySQL client 使用 ip port user password 访问某个ip 端口上的 MySQL Server ,这个 Server 也可以视为接口。当然,javascript 通过 XMLHttpRequest 请求 http server 也可以视为一个接口通信。

            往小了说,有程序内部接口。在某个类里面调用其他类提供的方法,也可以算是接口。

            评论 赞赏 2013-02-20

              - 你可以搜下面向接口编程,要是还是不懂的化,没必要太纠结了,是一个抽象的问题。

              评论 赞赏 2013-02-20

                参考维基百科中的解释 http://zh.wikipedia.org/wiki/API

                应用程序接口(英语:Application Programming Interface,简称:API),又称为应用编程接口,就是软件系统不同组成部分衔接的约定。由于近年来软件的规模日益庞大,常常会需要把复杂的系统划分成小的组成部分,编程接口的设计十分重要。程序设计的实践中,编程接口的设计首先要使软件系统的职责得到合理划分。良好的接口设计可以降低系统各部分的相互依赖,提高组成单元的内聚性,降低组成单元间的耦合程度,进而提高系统的维护性和扩展性。

                评论 赞赏 2013-02-21
                  炽火
                  • 2
                  • 新人请关照

                  接口是一个抽象概念,一般有好几种层面的接口。Interface可翻译为界面也可翻译为接口,翻译为接口的由来应该是从电器的插口而来(未做考证)。通俗说法:接口就是用来连接而开放的入口。

                  大致有这些类型的接口:硬件接口、用户界面(UI)、软件接口、面向对象接口。

                  编程接口(API)应该是软件接口中的一个分支。当然接口在不同的领域有N多的分类。

                  至于API一般仅仅限于应用程序的编程接口。通俗的解释应该是:一个组件(或程序库)提供给开发者进行编程使用的,通过代码可以与之沟通的入口。比如说你下载了一个控件包,通过阅读说明你知道应该如何创建上下文、初始化、设置属性、调用、回调、事件处理,这些就是这个控件包的API。

                  API一般对应函数,在面向对象领域可能对应类提供的特性,而对于传输协议一般指协议的一种实现所提供的使用该协议的方式。

                  评论 赞赏 2013-02-21
                    撰写回答

                    登录后参与交流、获取后续更新提醒