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

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

3天内不再提示

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

电子工程师 来源:Astroys 作者:Astroys 2022-08-10 11:20 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

API(Application Programming Interface)有点类似于肯德基汽车穿梭窗口。但在代码中,它们接受输入并提供可预测的输出。

在其核心,API是一组接受输入并给出输出的代码

大多数现代应用程序(如Excel)都是一堆API组成的

有时,公司会公开他们的部分API,比如Twitter或谷歌地图

API是软件中比较令人困惑的概念之一,因为它们可以代表很多不同的东西

API为大多数现代软件开发提供了强大的功能,且是可以聪明地讨论代码的关键部分。

什么是API(理论上)?

如果你想理解API,需要进行一个重要的区分:一个是API的技术定义,然后是人们在对话中如何实际使用这个概念。它们非常不同,这就是为什么这些东西会让人很困惑。让我们先来解决技术定义。

6cbbec46-17df-11ed-ba43-dac502259ad0.jpg

API是一组接受特定输入并给出特定输出的逻辑。几个例子:

如果向谷歌地图API提供一个地址作为输入,它的输出是该地址的经纬度坐标

如果给Javascript Array.Sort API一个数组作为输入,它将这些数字作为输出进行排序

如果你给Lyft Driver API一个起始地址和结束地址作为输入,它会找到最匹配的司机作为输出

工程师构建代码模块来做特定的事情时,他们清楚地定义了这些模块的输入和输出:这就是API的真正含义。当你给一个API一堆输入来获得你想要的输出时,它被称为调用API。 输入 API通常会确切地告诉你它需要什么样的输入。如果你尝试用你的名字作为谷歌地图API的输入,那不会有什么效果;它被设计用来完成一个非常特定的任务(将地址转换为坐标),因此它只处理非常特定类型的数据。有些API在输入方面非常麻烦,并可能要求你以特定的方式格式化该地址。 输出 就像输入一样,API给你特定的输出。假设你为谷歌地图API提供了正确的输入(一个地址),它将始终以完全相同的格式给你回馈坐标。还有非常具体的错误处理:如果API不能找到你输入的地址的坐标,它会告诉你确切的原因。 这些都是技术和理论上的东西。 那些应用只是API的集合 关于现代软件,最值得理解的一点是,你最喜欢的那些应用只是一堆API,上面有一个漂亮的界面,称为前端。你使用的大多数应用都是建立在这种前端/后端范例之上的。 后端 公司从为用户在应用中需要做的所有重要事情构建API开始。对于Gmail,Google从接收、显示、发送和转发邮件的API开始;但这些都是通过代码调用的。这些API以及使用它们的时间和方式的逻辑是应用的后端。就像汽车引擎盖下正在发生的事。如果你听说过后端工程师,那就是主要处理这些内部组件的开发者前端 所有这些后端API只能通过代码来使用,这并不是你想在iPhone上查看电子邮件时遇到的情况。这就是为什么公司要为他们的应用创建前端:图形用户界面使应用美观且可用,而不需要编写代码。下面是Gmail中的工作方式:

你的收件箱显示一排排的电子邮件和主题行:前端将这些后端的电子邮件数据进行了很好的格式化处理

你可以点击星形图标来标记一封邮件:在后端,这将触发一个“标记邮件”的API

前端的大多数交互都被转换成后端的API调用,这就是应用软件101。一旦我开始理解这个模型,就更容易理解开发者如何在对话中实际使用“API”的方式了。

6cdeb3b6-17df-11ed-ba43-dac502259ad0.jpg

什么是API(实际上)?

实际上,我发现人们在三种不同的场景中使用“API”,它们都代表着不同的东西。但从理论上讲,它们都是一样的,符合我们之前的定义。它们都是一样的,但又有所不同。

公司内部API

当公司构建他们的应用时,他们把它们设计成一组交互的API。最容易理解的例子是Lyft(或者Uber)。你可能想在Lyft应用中做一些事情,它们在幕后都会触发不同的API。

6cfcd288-17df-11ed-ba43-dac502259ad0.jpg

这种模式几乎适用于你使用的所有应用:你在应用中采取的操作将触发公司内部API,这些API实际上完成了让你的请求得到满足的工作。公司内部API也是分层的:虽然可能有一个广泛的“预约乘车”API,但在这个“引擎盖”下有一堆较小的API来完成它:查找司机、预约司机、验证信用卡、与用户沟通等。

公共API

Lyft的API都不是公开的:它们只是Lyft在后端为你提供服务的方式。但有时,公司会提供一些他们的API,并告诉你如何使用它们。Twitter的API就是一个很好的例子。

通常,你使用Twitter应用,它会对Twitter内部API进行一些API调用,比如显示提要、发送回复和搜索(这就是我们刚刚谈到的:前端和后端)。但你也可以在Twitter应用之外通过代码调用这些API。例如,有一个抓取用户时间轴的API,你可以使用它来查看用户的时间轴(他们的推文),该API以JSON格式返回那些推文,这是一种特殊的文本格式。

这些公共API让人们在Twitter上构建应用。有一些非常基本的东西,比如笔者做的这个学校项目,收集关于纽约大学的推文,分析他们的情绪,但也有一些相当高级的东西,比如Flock,它可以让你搜索你的订阅者。

代码接口

我们刚刚看到的前两类API都是功能性的,它们通常完成一些实用且容易理解的事情,比如提供坐标或预订乘车。但是开发者也使用“API”来指代更底层级别的输入和输出,比如代码中的函数。

Javascript的array.sort()方法就是一个很好的例子。它是一个接受数字或字母列表作为输入的API,然后对它们进行排序,并将它们作为输出返回给你。还有其他与数组相关的API,比如添加(array.push)和移除(array.pop)东西,过滤(array.filter),以及获取数组的大小(array.length)。当你用Javascript的时候,你会用到这些。

因此,当人们谈论API时,我们并不总是清楚人们到底在谈论什么,特别是因为开发者用这个词指代很多不同的东西。如果你感到困惑,就直接问。答案很可能属于这三类。

6d1ef782-17df-11ed-ba43-dac502259ad0.jpg

编辑:黄飞

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

    关注

    2

    文章

    2146

    浏览量

    66199

原文标题:API到底指的是什么?

文章出处:【微信号:Astroys,微信公众号:Astroys】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    OpenHarmony 应用开发SDK、API 与基础工具

    。C API 也包含在鸿蒙SDK ,方便开发者使用 C 或者 C++语言实现应用相应功能。 C API 只覆盖了部分鸿蒙基础底层能力,如 libc,图形库,窗口系统,多媒体,压缩库等,并没有完全提供
    发表于 09-19 15:45

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

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

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

    REST API。知行之桥API端口主要支持对象就是REST API。 什么是REST API? 首先,REST是一种架构风格。REST
    的头像 发表于 02-17 18:00 1w次阅读
    REST <b class='flag-5'>API</b>是什么,如何使用REST端口

    Compose的动画API概览及使用方法

    我们将通过本文介绍 Compose 的一些动画 API,并探讨如何有效地使用它们。Compose 的动画 API 是我们构想的全新 API
    的头像 发表于 06-06 17:48 3124次阅读

    如何通过ApiFox来构建API场景测试

    在开发前后台分离项目并且通过不同团队来实现的时候,如何将后台设计的 API 准确的传达到前台,是一个非常重要的工作。为了简化这个过程,开源社区做了很多努力,比如 protobuf技术,swagger
    的头像 发表于 09-01 10:48 2215次阅读

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

    华为云API Arts是API全生命周期一体化协作平台,支持开发者一站式高效实现API设计、API开发、API测试、
    的头像 发表于 03-01 15:45 1209次阅读
    <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 1350次阅读
    为什么需要 <b class='flag-5'>API</b> 网关?

    企业怎么选择API网关

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

    api接口怎么使用

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

    RAGFlow配置MaaS API使用指导

    RAGFlow配置MaaS API使用指导
    的头像 发表于 04-19 13:40 3064次阅读
    RAGFlow<b class='flag-5'>中</b>配置MaaS <b class='flag-5'>API</b>使用指导

    如何获取 OpenAI API Key?API 获取与代码调用示例 (详解教程)

    ,催生了从智能聊天到复杂数据分析等前所未有的应用场景。OpenAI API Key 是开启这些能力的关键,它既是身份凭证,也是资源管理和安全保障的核心。然而,安全、高效地获取、管理和使用 API
    的头像 发表于 05-04 11:42 1.2w次阅读
    如何获取 OpenAI <b class='flag-5'>API</b> Key?<b class='flag-5'>API</b> 获取与代码调用示例 (详解教程)

    1688 API接口的应用场景介绍

    、集成企业系统,并支持JSON或XML格式的数据传输。认证机制通常采用OAuth 2.0或AppKey/AppSecret方式,确保安全访问。以下从技术角度,我将逐步介绍1688 API的核心应用场景
    的头像 发表于 11-03 13:58 250次阅读
    1688 <b class='flag-5'>API</b>接口的应用<b class='flag-5'>场景</b>介绍

    小红书API接口的应用场景介绍

    ,逐步介绍小红书API的典型应用场景,帮助您理解其实际用途。这些场景基于社交平台API的通用设计,确保真实可
    的头像 发表于 11-04 15:03 242次阅读
    小红书<b class='flag-5'>API</b>接口的应用<b class='flag-5'>场景</b>介绍

    教你如何使用API

    。在网络环境API使得应用程序能够彼此交互。在软件或硬件API使得不同的组件能够互相操作。 在编写代码调用API之前,你需要了解
    的头像 发表于 11-09 17:48 1027次阅读

    淘宝平台 API 的功能及应用场景

    到营销推广、物流跟踪等电商运营的核心环节。下面我们将深入探讨淘宝平台 API 的主要功能模块及其典型的应用场景。 一、 核心功能模块 商品 API 功能: 提供对商品信息的增、删、改、查操作。开发者可以获取商品的详细信息(标题、
    的头像 发表于 11-24 15:23 188次阅读
    淘宝平台 <b class='flag-5'>API</b> 的功能及应用<b class='flag-5'>场景</b>