zoukankan      html  css  js  c++  java
  • API到底是什么? 【汇总,转】

    1. API就是接口,就是通道,负责一个程序和其他软件的沟通,本质是预先定义的函数。【比如你写了一个库,里面有很多函数,如果别人要使用你这个库,但是并不知道每个函数内部是怎么实现的。使用的人需要看你的文档或者注释才知道这个函数的入口参数和返回值或者这个函数是用来做什么的。对于用户来说 ,你的这些函数就是API。API(Application Programming Interface应用程序编程接口) 是一些预先定义好的函数,目的是提供应用程序以及开发人员基于某软件或硬件得以访问一组例程的能力。】
    2. 把某些功能封装好,方便其他人调用。
      调用的人可以很方便使用这些功能,并且可以不需要知道这些功能的具体实现过程。

      接API就是按照作者规定的流程去调用这些功能。

    概念:第一,接口interface,在计算机领域是指两个不同事物之间交互的地方,大可以到两个完整的不同系统,小可以到两段程序。所以这个就这么理解。

    在这个基础上,人和程序交互的地方,叫做UI,user interface,所有人输入的包括鼠标键盘触摸屏声音输入都算。

    那么程序和程序交互的就叫做API,所有非人对非人交互都通过API进行交互,所谓交互,其实就是传递数据,触发功能。

    再比如两个理工大学的宿舍舍友搞基,交互的地方可以叫做AI(ASS interface)也可以叫做GI(Gay interface)

      3.例子一:

    说到API,往往是和SDK放在一起的。

    什么叫API,看一下餐厅里怎么点餐的就行了。

     

    到了饭店,喊一场服务员,点餐。

    服务员拿出来菜单给你看,你点什么,她在小本本上记什么。

    点好了之后,再把菜单送到后厨去。

     

    这里服务员就是提供服务的(不然也不叫服务员),提供什么服务呢?

    点餐服务。

    点餐服务需要什么呢?

     

    谈一个服务,通常就是要谈输入是什么,输出又是什么。

    从眼下这个例子来看,输入就是一道道菜品的名字(或者是ID,不知道你们见过菜品上面有编号,服务员只记编号的?),输出的结果就是端过来的一道道菜。

     

    有了输入和输出,服务员就可以提供了点餐的功能,这就是API,顾客就是调用者,服务员就是服务的提供者。

    你可以在这里把服务员替换成猫猫,假设女王大人猫猫来给你提供服务,只要输出是菜品的名字,输出是菜品,这个API就是能够正常使用的。

    而且,所有的顾客都可以用这种方式来点菜的~~~

     

    再想想,是不是有的服务员手里拿的是点餐机?想想一个漂亮的小姑娘,拿着一个和手机大小差不多的点餐机,这个点餐机,就是需要和后厨系统有交互,这种交互,就需要一种约束,来声明点菜功能的输入是什么,输出是什么。比如说,如果用户点了一道已经估清的菜,是不是服务员要告诉顾客一下?

     

    API通常是以Http的形式提供,它隐藏的含义就是,只要你符合我定义的标准,你就可以来使用我。

    比如说,服务员是中国姑娘,顾客是美国人,没关系,只要美国人能说中国话,这套API就可以使用。如果美国人只会说英语,怎么办?让和美国人一起来吃饭的中国朋友翻译成中文,就可以了~~

    那么什么是SDK呢?

    当美国人不会说中文的时候,饭店里的大堂经理来了,他来给美国佬当翻译。这就是SDK,SDK一般都是和语言相关,是官方提供的各种不同语言的实现版本。

     

    同样的,我们再把思维模式扩大一点。

    除了Http这种API,内部系统集成的组件,是否也是有API?

    你会发现,确实是这样的,比如说,JDK本身提供的各种API,在这里,API和SDK的概念没有那么清楚了,但是API本身的含义就是,当服务的提供方对外提供服务的时候,应该声明输入和输出和功能的明确含义。

    而一组组明确声明了的输入,输出和功能描述,就是服务方提供的各种API。

    比如说数组对外暴露的方法,链表对外暴露的方法等等。

     

    那么,API和方法之间有没有明显的区别呢?暴露出去的,可被公开使用的方法,统称为API~~~

     

    以上解释不够严谨,但是对于初学者来说,理解起来应该够了。

    如果你在理解API的时候有困难,大概问题并不是在API上,而是你有没有理解清楚什么叫做封装,什么叫做服务?

      4、例子二

    作者:优达学城(Udacity)
    链接:https://www.zhihu.com/question/38594466/answer/228418422
    来源:知乎
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

    API是什么?又到了看优达菌科普涨姿势时间!看完这篇,再也不用不懂装懂了!

     

    我最近跟一位 Techstars 的创业家聊天时,问了她一个问题:“你们公司的 API 是什么?” 这听起来是个挺奇怪的问题,但其实并不是。

     

    每家创业公司都有一个面向外界接口。有些接口非常简单,比如说 Google,你只要输入关键词搜索就好;有些接口复杂一些,比如在 Amazon 上买东西,你可以浏览商品、搜索商品、添加商品到购物车、下订单、请求退款,等等。

     

    即使你不是工程师或是产品经理,思考你的公司会向外界提供什么 API 也是很有帮助的。这能够使你对自己的业务是什么以及为什么有更加清晰的认识。

     

    API 思维帮助你保持最简和清晰。

     

    API 是什么?

     

    API(Application Programming Interface)即应用程序接口。你可以认为 API 是一个软件组件或是一个 Web 服务与外界进行的交互的接口。而我们在这里要谈论的,是作为一家公司如何跟外界进行交互。从另一个角度来说,API 是一套协议,规定了我们与外界的沟通方式:如何发送请求和接收响应。

     

     

     

     

    让我们拿网站上常见的复选框(checkbox)作为例子。复选框的接口允许你选择或者取消选择它。

     

    /check -- causes checkbox to be checked
    /uncheck -- causes checkbox to be unchecked

     

    再举个例子,Digital Ocean(VPS 供应商)提供的一次性启动 10 个服务器的 API 可能长成这样:

     

    /launchServers?numServers=10 -- starts running servers in the cloud.

     

    在这个例子中,launchServers 命令允许用户指定要启动的服务器的数量。绝大多数服务都支持这样的自定参数,一是更灵活,二是复用性好。要是启动 10 个服务器和 20 个服务器有两个不同的命令,那就太蠢了,因为它们本质上是一样的。

     

    商业API 又是什么?

     

    设计你的商业 API 时,可以从你的业务有哪些关键概念入手来考虑相关的命令,这样会比较方便。思考:你的用户们可以做哪些事情?下面是一些简单的例子:

     

     

    现在的服务大多都运行在云上,通过 HTTP 协议与外界交互。这不是太直观,因为我们和用户看到的都是界面美观友好的 APP。但实际通过 HTTP 传输的是这些命令。它们非常重要,因为这些最底层和直接的接口最终决定了你的用户能够如何使用你的服务。通过这样的思考,我们才能透过人机界面理清业务的核心。

     

    如何设计你的商业API?

     

    现在让我们把注意力集中到你的公司。开始创业时,你有一大堆事情要做:寻找和理解创始人与市场之间的契合,跟用户沟通,思考你们独有的见解和优势,市场策略,等等等等。除此以外,设计商业 API 也是你在早期就应该做的事情之一。

     

    花点时间研究 HTTP 协议吧(真的不难)!在开发你的 MVP(Minimum Viable Product,最简可行产品)之前,你就要把 API 设计好了。

     

    设计 API 可以帮助你理清自己的业务。你会在这个过程中决定 MVP 中会包含哪些东西,不包含哪些东西。你会给某些命令更高的优先级。最后,拿一张纸把设计好的 API 写下来,你就知道自己是提供了太多还是太少。

     

    尽可能地将你的 API 设计得简单和优雅。不要考虑应该添加什么,而是想想应该去掉什么。

     

    有了基础的 API 以后,跟客户和团队沟通起来就方便多了。这将为你接下来打造 MVP 提供坚实的基础。

     

    当你设计出令人满意的 API 之后,就去实现它吧。一个一个让原始 API 能通过 HTTP 被访问。没错,你现在还不需要花哨的界面。在实现的过程中,你会对自己的业务有更深的了解。

     

    随着业务增长,升级你的 API

     

    随着你的业务进化和增长,你的 API 也需要作出改变。持续地更新和改善它。可以扩充它,但要 “矜持” 一点。最伟大的公司都有着简单的 API。

     

    想一下 Google,它提供了一个非常简单的接口,但内部的工作原理是无比复杂的。类似地,乔布斯总是驱动 Apple 公司来不断简化用户界面。Apple 的产品往往通过简单的界面来隐藏背后的工程复杂度和独创性。

     

    “你会希望你的业务越简单越好,隐藏在接口背后的服务越有价值越好。”

     

    在业务增长的过程中,一些子业务可能会演化出它们自己的 API。你可能会有公共接口和内部接口。这时将接口保持得简单而整洁就开始凸显价值了。不断鞭策自己去实现和使用简单的接口。

     

    “你的业务本身永远是你的 API 的第一个也是最大的用户。”

     

    通常伴随着业务增长,用户访问你的服务的方式也会越来越多。你可能同时有桌面版应用和移动端应用,短消息服务,机器人,iOS 和 安卓应用,等等。这些都是你的 API 的用户,也是你的业务的用户。

     

    我们生活在一个云服务和自动化的时代。每家互联网巨头,Google、Amazon、Facebook 等,都为他们的服务提供了 API。而在未来,所有的服务都将在一个图形界面以外拥有编程接口。随着人工智能和自动化逐渐进入我们的世界,越来越多的请求和访问会在这些云服务和 API 之间发生。如果你打算创业,为了准备如此激动人心的未来,你可以从思考和实现自己的 API 做起。

    ==================================================================================
    1. API接口就是完成和其他组件的交互的地方。
    2. API协议就是两个不同组件完成交互所遵循的规则。
    3. API的作用:

      - 对于软件提供商来说,留出API,让别的应用程序来调用,形成生态,软件才能发挥最大的价值,才能更有生命力。(同时别人也看不见代码,不伤害商业机密。)

      - 对于应用开发者来说,有了开放的API,就可以直接调用多家公司做好的功能来做自己的应用,不需要所有的事情都自己操刀,节省精力。
      sum:云计算、共享经济时代,API就是技术服务商为客户提供服务的方法。例如,网易云基于十多年IM技术积累打造的通信与视频服务,开发者通过集成客户端 SDK 和云端 Open API,即可快速实现强大的通信与视频功能

  • 相关阅读:
    [C/C++]Fibonacci numbers
    使用VS调试时,被调试进程如何被断下来的。
    Windows下动态加载可执行代码原理简述
    发个JD, 求人被我卖
    使用Windbg知道程序运行时的命令行参数.
    How to debug usermode process using kernelmode windbg in Win7
    This is a test
    多核时代,还在使用任务管理器来看程序的性能吗?
    六种异常处理的陋习
    巧记Java访问控制描述符(Access Control Modifier)public, private, protected
  • 原文地址:https://www.cnblogs.com/rongba/p/13645665.html
Copyright © 2011-2022 走看看