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

    文章

    1483

    浏览量

    61802
  • 源码
    +关注

    关注

    8

    文章

    633

    浏览量

    29134
  • 函数
    +关注

    关注

    3

    文章

    4303

    浏览量

    62411
收藏 人收藏

    评论

    相关推荐

    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次下载

    使用Java API技巧分析

    本文介绍了一些关于Java API安全和性能方面的简单易用的技巧,其中包括保证API Key安全和开发Web Service方面中在框架方面选择的一些建议。 程序员都喜欢使用API!例如为app
    发表于 09-27 14:09 3次下载

    分析API都有哪些特点

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

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

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

    REST API是什么,如何使用REST端口

    API是Application Programming Interface(应用程序接口)的缩写,它是拿来描述一个类库的特征或是如何去运用它。按照目前比较主流的分法,可以分为REST API和非
    的头像 发表于 02-17 18:00 9178次阅读
    REST <b class='flag-5'>API</b>是什么,如何使用REST端口

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

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

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

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

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

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

    为什么需要 API 网关?

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

    企业怎么选择API网关

      一、API网关的用处 API网关我的分析中会用到以下三种场景。 1、Open API 企业需要将自身数据、能力等作为开发平台向外开放,通常会以rest的方式向外提供。最好的例子就是淘宝开放平台
    的头像 发表于 05-23 11:05 632次阅读
    企业怎么选择<b class='flag-5'>API</b>网关

    api接口怎么使用

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

    api网关 kong 教程入门

    为什么使用API-Gateway 方便客户端维护– 每个请求方不用管理多个api url,统一访问api-gateway即可 接口重构时调用方不须了解接口本身等拆分和聚合 客户端无须关心接口协议
    的头像 发表于 11-10 11:39 710次阅读
    <b class='flag-5'>api</b>网关 kong 教程入门

    华为云发布 CodeArts API,为 API 护航

    4 月 10 日,华为云正式发布 API 全生命周期管理一体化协作平台 CodeArts API,支持开发者高效实现 API 设计、开发、测试、托管、运维、变现的一站式体验。以 API
    的头像 发表于 05-09 23:17 486次阅读
    华为云发布 CodeArts <b class='flag-5'>API</b>,为 <b class='flag-5'>API</b> 护航

    api驱动的云服务是什么意思?

    API驱动的云服务是指利用API技术来驱动和提供云服务的模式。在这种模式下,云服务提供商会公开一系列的API接口,允许开发者或应用程序通过调用这些API来实现对云服务的访问和操作。
    的头像 发表于 11-14 10:06 108次阅读