3分钟认识API是什么

news2024/11/5 18:50:33

API:application programming interface,应用程序编程接口。

什么是API

API,即应用程序编程接口(Application Programming Interface),

“应用程序”在这里指的是任何具有特定功能或目的的软件,而“接口”则是指一种协议或约定,它规定了两个应用程序之间是怎样通过请求和响应来进行沟通的。

API的不太技术性比喻

API其实就是让不同的系统或应用之间可以互相沟通的方式,听起来不错对吧?那么,我们为什么需要API呢?我们先来个不太技术性的比喻吧。假设你今晚有一个三个人的晚餐预约,但因为有朋友临时决定一起加入,你想把人数改成六个。于是你打电话给餐厅,问他们能不能改。客服把你放在了待机状态,等了一分钟,终于接通了。“回过头来说,简单来说就是你打了个电话,问了个问题,然后得到了‘是’或‘不是’的答复。现在假设没有客服人员,你得自己搞清楚有多少人同一时间在这家餐厅预定了,那个时候有多少张桌子空着,他们的厨房能接待多少人,服务员的能力又是多少……这一切都是为了判断你能不能把你的预定人数加到三个,这样的工作量可真是多余啊。”

这段话的意思是:你作为顾客对某些事情并不懂,这就意味着餐厅需要向你透露很多信息,可能甚至包括一些私人数据,比如那天晚上谁在那吃饭,谁在那工作等等。在这个比喻中,餐厅就像一个提供特定服务或功能的应用程序,它的功能就是给你提供食物。而你则是一个想和朋友们一起用餐的应用程序。餐厅的客服就相当于餐厅的API,正是通过这个接口你才能和餐厅沟通,进行点餐等操作。

“像是修改预约号码这样的请求,你可以直接处理,而不用去研究餐厅预约的复杂细节。再举个更技术性的例子,想想苹果的天气应用。你觉得苹果会决定在全球建立天气监测站吗?这可是个非常昂贵的项目。如果这对苹果的商业模式来说真的很关键,那也许他们会这么做,但其实市场上已经有其他的服务在提供这些了。”

API如何工作

仔细收集全球天气数据服务,比如 weather.com。如果 weather.com 创建一个 API,让任何人都可以以他们允许的方式访问数据,那么苹果就可以利用这个 API 来填充他们的天气应用。那么 API 实际上是如何工作的呢?我们以网络 API 为例,这种 API 可以向客户端提供请求并通过 JSON 或 XML 返回响应,通常是通过互联网进行的。每一个请求和响应的周期就是一个 API 调用。

一个服务器端点的 URL 和请求方法通常是通过 HTTP(超文本传输协议)进行的,请求方法表示希望进行的 API 操作。HTTP 响应包含状态码、头部和响应体。响应体根据请求的不同而变化,可能是客户端需要访问的服务器资源,也可能是任何特定于应用的消息。你可能熟悉的一个状态码是 404错误,当你尝试访问一个可能宕机或不再存在的网站时,通常会遇到这个错误。

很棒,喜欢这个解释。以下是文本版本:假设您今晚预订了 3 人晚餐,但想要将其改为 6 人。您打电话给餐厅询问他们是否可以这样做,客服人员说可以。这很简单 - 您打电话给某人,提出请求,然后得到是或否的答复。现在,假设没有客服人员,您需要自己解决这个问题。您需要知道:• 有多少人同时在这家餐厅预订了座位?• 当时有多少张桌子是空的?• 他们的厨房容量和服务员容量是多少?所有这些问题只是为了确定您是否可以在预订中再增加三个人。这给你带来了很多不必要的工作,而你作为顾客并不擅长这些工作。更不用说餐厅还要向你透露大量数据,甚至可能是关于当晚谁在那里吃饭、谁在那里工作等等的私人数据……在这个比喻中,餐厅是一个提供特定服务或功能的应用程序,那就是给你提供食物。你是一个试图让一群朋友给你提供食物的应用程序。餐厅的客服代表就是餐厅的 API。客服是 API 接口,通过它你可以与餐厅沟通并提出请求,例如更改预订号码,而你无需深入了解餐厅预订如何运作或诸如此类的复杂细节即可做到这一点。

参考资料

  1. API说明

欢迎关注我的博客,如有疑问或建议,请随时留言讨论。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2231642.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

初步认识Java,及使用

JAVA 特点 简单性 面向对象 分布式 健壮性 安全性 体系结构中立(平台无关) 可移植性 解释执行 高性能 多线程 动态 发展史 JDK,Eclipse下载,…

牛客sql题目总结(1)

1.第N高的薪水 AC: create function getnthhighestsalary(n int) returns int begindeclare m int; set m n - 1; return (select distinct salaryfrom employeeorder by salary desclimit m, 1); end 2. 3. 4. 5. 6.

Pr 视频效果:ASC CDL

视频效果/颜色校正/ASC CDL Color Correction/ASC CDL ASC CDL ASC CDL效果通过对红、绿、蓝三个原色通道的独立调整,实现对图像色彩的精确控制。在此基础上,还可用于调整处理后图像的整体饱和度。 ◆ ◆ ◆ 效果选项说明 斜率 Slope、偏移 Offset和功…

开源OCR免费助力法律文档数字化,提升文档管理效率

一、在法律行业,每天需要处理大量纸质文件,从合同到判决书,手动录入不仅费时,还容易出错。为解决这一问题推出了一款免费开源的OCR智能识别平台,通过先进的光学字符识别(OCR)技术,将…

RAG流程

目录 1. 前言2. 流程详解2.1 知识管理2.1.1 知识存储【未展开】2.1.2 知识加载(1) docx(2) pdf 2.2 切分2.2.1 固定长度分割2.2.2 自己写的固定分块方法 2.3 创建知识库的向量库2.4 检索2.5 模型部署和加载(1)api生成(2)Transform…

JeecgBoot入门

最近在了解低代码平台,其中关注到gitee上开源项目JeecgBoot,JeecgBoot官方也有比较完整的入门教学文档,这里我们将耕者官方教程学习,并将其记录下来。 一、项目简介 JeecgBoot 是一款基于代码生成器的低代码开发平台拥有零代码能力…

threejs开源实例-粒子地球

源码 three.js webgl - geometry - cube <script type"module">import * as THREE from "three";import { OrbitControls } from "three/addons/controls/OrbitControls.js";import { GUI } from "three/addons/libs/lil-gui.modul…

11.1 daimayuan 模拟赛总结

逆天 复盘 7:40 开题 扫了一眼四个题&#xff0c;T1 神秘构造&#xff0c;感觉和以前做过的某道题有点像啊&#xff0c;应该能做&#xff1b;T2 题意很简洁&#xff0c;感觉可做&#xff1b;T3&#xff0c;一眼感觉是什么优化 dp&#xff1b;T4&#xff0c;看上去像是拆期望…

2024年,Rust开发语言,现在怎么样了?

Rust开发语言有着一些其他语言明显的优势&#xff0c;但也充满着争议&#xff0c;难上手、学习陡峭等。 Rust 是由 Mozilla 主导开发的通用、编译型编程语言&#xff0c;2010年首次公开。 在 Stack Overflow 的年度开发者调查报告中&#xff0c;Rust 连续多年被评为“最受喜爱…

Golang | Leetcode Golang题解之第528题按权重随机选择

题目&#xff1a; 题解&#xff1a; type Solution struct {pre []int }func Constructor(w []int) Solution {for i : 1; i < len(w); i {w[i] w[i-1]}return Solution{w} }func (s *Solution) PickIndex() int {x : rand.Intn(s.pre[len(s.pre)-1]) 1return sort.Searc…

微服务day02

教学文档&#xff1a; 黑马教学文档 Docker Docker的安装 镜像和容器 命令解读 常见命令 案例 查看DockerHub&#xff0c;拉取Nginx镜像&#xff0c;创建并运行容器 搜索Nginx镜像&#xff1a;在 www.hub.docker.com 网站进行查询 拉取镜像&#xff1a; docker pull ngin…

认证鉴权框架之—sa-token

一、概述 Satoken 是一个 Java 实现的权限认证框架&#xff0c;它主要用于 Web 应用程序的权限控制。Satoken 提供了丰富的功能来简化权限管理的过程&#xff0c;使得开发者可以更加专注于业务逻辑的开发。 二、逻辑流程 1、登录认证 &#xff08;1&#xff09;、创建token …

python爬虫实现自动获取论文GB 7714引用

在写中文论文、本硕博毕业设计的时候要求非常严格的引用格式——GB 7714引用。对于普通学生来说都是在google scholar上获取&#xff0c;一个一个输入点击很麻烦&#xff0c;就想使用python完成这个自动化流程&#xff0c;实现批量的倒入论文标题&#xff0c;导出引用。 正常引…

pycharm中python控制台出现CommandNotFoundError: No command ‘conda run‘.

1、错误现象 pycharm中打开python控制台出现CommandNotFoundError: No command conda run.的错误。 2、背景 conda是4.6版本&#xff0c;在Anaconda Prompt可以正常运行虚拟环境。 3、解决方法 更新conda版本&#xff0c;基本命令&#xff0c;会自动更新到最新版本。 con…

masm汇编字符输入小写转大写演示

从键盘读取一个字符变成大写换行并输出 assume cs:codecode segmentstart:mov ah,1int 21hmov bl,alsub bl,20hmov dl,10mov ah,2int 21hmov dl,blmov ah,2int 21hmov ah,4chint 21hcode ends end start 效果演示&#xff1a;

VisualStudio远程编译调试linux_c++程序(二)

前章讲述了gdb相关&#xff0c;这章主要讲述用VisualStudio调试编译linux_c程序 1&#xff1a;环境 win10 VisualStudio 2022 Community ubuntu22.04 2:安装 1>vs安装时&#xff0c;勾选 使用c进行linux 和嵌入式开发 (这里以vs2022为例) OR VS安装好了&#xff0c; 选择工…

【002】基于SpringBoot+thymeleaf实现的蓝天幼儿园管理系统

基于SpringBootthymeleaf实现的蓝天幼儿园管理系统 文章目录 系统说明技术选型成果展示账号地址及其他说明源码获取 系统说明 基于SpringBootthymeleaf实现的蓝天幼儿园管理系统是为幼儿园提供的一套管理平台&#xff0c;可以提高幼儿园信息管理的准确性&#xff0c;系统将信息…

【AIGC】从CoT到BoT:AGI推理能力提升24%的技术变革如何驱动ChatGPT未来发展

博客主页&#xff1a; [小ᶻZ࿆] 本文专栏: AIGC | ChatGPT 文章目录 &#x1f4af;前言&#x1f4af;迈向AGI的新跨越&#x1f4af;BoT与CoT的技术对比技术原理差异推理性能提升应用范围和通用性从错误中学习的能力总结 &#x1f4af;BoT的工作流程和机制初始化过程生成推…

无人机拦截捕获/直接摧毁算法详解!

一、无人机拦截捕获算法 网捕技术 原理&#xff1a;抛撒特殊设计的网具&#xff0c;捕获并固定无人机。 特点&#xff1a; 适用于小型无人机。 对无人机的损害较小&#xff0c;基本不影响其后续使用。 捕获成功率较高&#xff0c;且成本相对较低。 应用实例&#xff1a;…

解码层跑几次取决于输出词汇多少;10个单词,在解码层跑几次transformer

目录 解码层跑几次取决于输出词汇多少 10个单词,在解码层跑几次transformer 解码层跑几次取决于输出词汇多少 10个单词,在解码层跑几次transformer 取决于具体任务和输出要求 在自然语言处理任务中,Transformer 架构的解码器(Decoder)运行次数与你想要生成的输出长度有关…