0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

什么是API

汽车电子技术 来源:码农与软件时代 作者:码农与软件时代 2023-02-14 14:54 次阅读

**一、什么是API?

**

对于普通吃瓜而言,API是到底是个啥真心听不懂。下面我们来看一下实例:周末想出去玩,自已不想太累,索性打车,到了车上你告诉司机,去某某地方,司机明白了,直接将你送到指定位置,而无须你去考虑如何走的问题。这里司机提供的是打车服务,服务的提供者就是司机,你就是服务的调用者或者使用者。

我们再来以IT的视角来描述下API是个啥?API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供一种访问函数的能力,而又无需访问函数内部的源码或者理解内部编写的细节。

如果你来对比一下,可以发现打车服务和访问函数的能力非常类似。API实质上就是为别人或第三方提供服务的接口。

二、为什么会产生API?

前面说到API是为第三方提供服务的接口,那为什么软件需要API呢,我们可以从软件的提供者、使用者、开发者等几个角度来说明:

从软件提供者的角度来讲,特别是“平台型”软件提供者,提供API供第三方应用程序来调用,可以形成生态,才能更有竞争力。如百度AI开放平台提供语音、图像、人脸与人体识别、视频等技术的API,打造全球领先的人工智能服务平台。。

从软件使用者的角度来讲,特别是大型电信运营商,在建设内部系统时,一般会寻求从多家软件厂商采购,避免被软件提供商锁定,出现“结婚容易离婚难”的窘境。如运营商的运营支撑系统包含客户关系管理系统、计费系统、呼叫中心、合作伙伴关系管理系统、ERP系统等,通常是几家软件提供商共建整个运营支撑系统。

从应用开发者的角度来讲,特别是“内容聚合系统”之类公司,通过调用开放的API,可以直接调用API来做自己的应用,集成各大公司的内容,并基于此做更高层次的创新。如今日头条聚合了各家公司的内容,外加大数据分析推荐系统,形成个性化的服务。

三、API的几种形式

1.本地调用

我们知道在本地调用非常地简单,例如实现如下3个值的相加,就可以写一个简单的函数,供主函数main()来调用。在执行过程中,调用是发生在同一CPU、内存地址空间:

图片

2. RPC

那如果是不同机器上的不同程序间的调用应该如何来做呢?ANDREW D. BIRRELL在论文《Implementing Remote Procedure Calls》给出了一种解决方案:RPC(Remote Procedure Calls,远程过程调用)。其主要思想是调用远程机器上的程序就像在本地机器的地址空间中一样。隐藏分布式环境重要的部分:对参数和结果的编解码、消息传递以及保留过程调用的语义。其基本流程图如下所示:

图片

①User以本地调用函数的方式去调用User-stub;

②User-stub生成消息并调用RPC Runtime;

③RPC Runtime将消息发送给远程RPC Runtime;

④远程RPC Runtime将请求消息交给Server-stub;

⑤Server-stub提取参数并调用Server;

⑥Server执行业务逻辑,并将结果返回给Server-stub;

⑦Server-stub生成响应消息,而后调用RPC Runtime;

⑧RPC Runtime将响应消息发送给客户端RPC Runtime;

⑨RPC Runtime将消息交给User-stub;

⑩User-stub提取结果信息,返回给User。

3. RESTFUL API

随着互联网的发展,使得这ICT领域开始融合,“如何开发在互联网环境中使用的软件”成为一个课题,也就是Web 应用应该如何运转?Roy Thomas Fielding认为“一个由Web页组成的网络,用户通过选择链接在应用中前进(状态迁移),导致下一个页面(应用的下一个状态的表述)被转移给用户,并且呈现给他们,以便他们来使用”,并在论文《架构风格和基于网络的软件架构设计》给出了一种解决方案:REST(Representational State Transfer,表现层状态转化)。其主要特点为资源、统一接口、URI、无状态。这里说明下资源和统一接口即:

u 资源:将网络中任何实体都看成资源。可以是一段文本、一张图片、一首歌曲、一个视频。其具体的体现形式:文本可以用txt、HTML、XML、Json或二进制等格式表现。

u 统一接口:REST架构风格规定,数据的增删除查改对应于HTTP方法,统一了数据操作的接口,如GET用来获取资源,POST用来新建资源,PUT用来更新资源,DELETE用来删除资源。

总的来说,REST可以理解为:使用URL表示资源,使用HTTP的GET\\PUT\\POST等方法进行资源的操作。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • API
    API
    +关注

    关注

    2

    文章

    1382

    浏览量

    60992
  • 源码
    +关注

    关注

    8

    文章

    573

    浏览量

    28586
  • 函数
    +关注

    关注

    3

    文章

    3868

    浏览量

    61309
收藏 人收藏

    评论

    相关推荐

    API技巧集(二)

    (一)不规则窗口 Windows提供的只是标准的矩形窗口,要想建立一个不规则的窗口就需要调用API函数来实现。建立一个不规则的窗口,一般是先用创建区域的API函数建立一个不规则的区域,再用API函数
    的头像 发表于 05-22 16:49 693次阅读

    vc++ api函数 (Windows API大全)

    Windows API大全,本书主要介绍VC++里API函数及其用法-WindowsAPI Daquan, the book introduces VC Lane API function
    发表于 10-14 11:45 32次下载

    JDBCTM 2.0 API

    The JDBCTM API is the JavaTM standard call-level API for database access. This documentcontains the final specification of the JDBC 2.0
    发表于 10-14 17:42 6次下载

    什么是3D API

    什么是3D API              API是Application Programming Interface的缩写,是应用程序接口的意思,而3D
    发表于 12-25 10:52 548次阅读

    iMX6_2D_API_Hardware_and_Platform_Independent_API_for_i.MX6_2D_Graphics

    iMX6.2D.API,Hardware and Platform Independent API for i.MX 6 2D Graphics
    发表于 12-29 14:41 12次下载

    分析API都有哪些特点

    好的API是怎样的,应该具备哪些特点,作者对此进行了详细说明,并把API比作产品,主张编写API时从用户的角度换位思考。 如果用户通过他们自己的代码与你的代码进行交互,那么你将需要构建一个AP
    发表于 09-28 17:38 11次下载

    如何使用API_api接口有什么优点

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

    The MySQL C API 编程实例

    在网上找了一些MYSQL C API编程的文章,如《The MySQL C API 编程实例》,看了后觉得还是写的不够充分,根据自己经验又扩充了一些知识,希望对需要调用到MYSQL的C的API的朋友有所帮助,附例中的环境为cen
    发表于 04-13 15:01 5次下载

    什么是API,不同场景中的API

    当公司构建他们的应用时,他们把它们设计成一组交互的API。最容易理解的例子是Lyft(或者Uber)。你可能想在Lyft应用中做一些事情,它们在幕后都会触发不同的API
    的头像 发表于 08-10 11:20 1776次阅读

    API+DevOps:华为云API Arts一体化平台,端到端呵护您的API

    API+ | 以API-First理论为基础,以API为核心构建数字化生态 摘要:华为云API Arts是API全生命周期一体化协作平台,支
    的头像 发表于 02-17 19:05 912次阅读

    API+DevOps:华为云API Arts一体化平台,端到端呵护您的API

    华为云API Arts是API全生命周期一体化协作平台,支持开发者一站式高效实现API设计、API开发、API测试、
    的头像 发表于 03-01 15:45 536次阅读
    <b class='flag-5'>API</b>+DevOps:华为云<b class='flag-5'>API</b> Arts一体化平台,端到端呵护您的<b class='flag-5'>API</b>

    文内福利 | 三重好礼,邀你成为API Explorer体验官!

    华为云API Explorer为开发者提供一站式API解决方案统一平台,集成华为云服务所有开放APIAPI Explorer服务,包括API
    的头像 发表于 03-25 07:55 309次阅读

    为什么需要 API 网关?

    API 网关是 API 全生命周期管理的关键基础组件,负责生产环境中 API 的配置、发布、版本回滚、安全、负载均衡等。API 网关是所有终端流量的入口,负责把终端的
    的头像 发表于 05-04 17:47 543次阅读
    为什么需要 <b class='flag-5'>API</b> 网关?

    api接口怎么使用

    本文就从API接口的维度,浅析API的概念以及为什么要了解它 一、API的概念 API,官方定义为应用程序编程接口。就是把是一些预先定义的接口,用来提供应用程序与开发人员基于某软件或硬
    的头像 发表于 05-24 14:44 982次阅读

    常见的api接口漏洞有哪些

    错误消息可帮助 API 使用者排查其与 API 的交互问题,并允许 API 提供者了解其应用程序的问题。但是,它也可以揭示有关资源、用户和 API 底层体系结构(例如 Web 服务器或
    发表于 07-17 16:29 178次阅读