您当前的位置:首页 > 电脑百科 > 程序开发 > 编程百科

一文搞懂 API Endpoint

时间:2023-09-14 15:36:33  来源:架构驿站  作者:

     Hello folks,我是 Luga,今天我们来聊一下应用程序接口(API)生态相关的技术概念 - API Endpoint 。

.NET="t"> 01 —

到底什么是 API ?

 

     API ,即全称为 Application Programming Interface 。在我们的潜意识中,API 是一种用于促使软件程序之间相互连接和通信接口。

     在深入 API 底层原理之前,我们先了解一下 UI。通常来讲,UI 是用户与软件程序之间的交互界面,它提供了一种可视化或图形化的方式,使用户能够与程序进行沟通和操作。UI 包括用户界面元素、布局、交互设计等,旨在提供用户友好的体验。

     API 的工作原理类似于用户界面(UI),但有一个关键的区别:在用户界面中,交互是发生在人与软件程序之间,而在 API 中,交互是在软件程序之间,也就是机器对机器的交互。

     这种机器对机器的交互可以更高效地传递数据和执行任务。API 允许不同的软件程序之间共享和访问信息,使它们能够相互合作完成复杂的操作。就像我们在用户界面中点击按钮或输入文本来与软件交互一样,在 API 中,软件程序使用指定的请求和参数来与其他程序进行通信。

     值得一提的是,虽然 API 和用户界面在工作原理上有相似之处,但它们的用途和目标不同。用户界面旨在提供给人使用的友好界面,使其能够与软件进行交互和控制。而 API 主要用于程序之间的数据传递和功能调用,以实现更高级的自动化和集成。

     下图来自 Arnaud Lauret 所著的《Web API 设计》一书,用以展示 UI 和 API 之间的相似之处。这张图可以帮助我们理解 API 的工作原理,并将其与我们对用户界面的熟悉概念进行对比。具体如下所示:

 

 02 —

 API 是如何工作的 ?

 

     API 的工作原理通常通过客户端和服务器之间的请求-响应通信来表达。客户端是与用户交互的任何前端应用程序。服务器负责后端逻辑和数据库操作。在这种情况下,API 充当客户端和服务器之间的中间层,使得发送数据请求和响应成为可能。

     下面是 API 的工作原理的一般步骤,具体如下所示:

     1、请求

     一个软件程序(通常被称为客户端)向拥有所需功能或数据的另一个软件程序(通常被称为服务器)发起请求。这个请求包含了所需的操作和参数,以及其他必要的信息。

     2、传输

     请求通过网络传输到服务器。这通常是通过 HTTP(超文本传输协议)进行的,但也可以使用其他协议,如 SOAP(简单对象访问协议)或 RESTful(表述性状态转移)。

     3、处理

     服务器收到请求后,会根据请求中的操作和参数执行相应的操作。这可能涉及从数据库中检索数据、进行计算、调用其他功能模块等。

     4、响应

     服务器处理完请求后,会生成一个响应,并将其发送回客户端。响应包含了所请求的数据、操作的结果或其他必要的信息。

     5、解析

     客户端接收到服务器的响应后,会解析响应数据,并根据需要进行处理。这可能涉及将数据显示在用户界面上,进一步处理数据,或者触发其他操作。

     从本质上来讲,API 的工作原理可以理解为一种协议,它定义了客户端和服务器之间的通信规则和数据格式。通过使用统一的 API,开发人员可以轻松地将不同的软件组件集成到一起,实现数据共享和功能交互,从而提高系统的灵活性和扩展性。

     需要注意的是,API 可以是公开的(向公众开放)或私有的(仅限于特定的系统或组织内部使用)。公开的 API 允许开发人员创建第三方应用程序或服务,与其他系统进行集成,并提供给其他开发人员使用。私有的API主要用于内部系统之间的通信和集成。

 

 03 —

什么是 API Endpoint ?

 

     API Endpoint 是一个数字位置,用于接收关于特定资源的请求,该资源位于 API 的服务器上。通常情况下,API Endpoint 是一个统一资源定位符 (URL),用于指示服务器上的资源位置。

     为了更好理解这个定义以及 Endpoint 在 API 模型中的位置,让我们简要回顾 API 的工作原理。为了实现两个软件应用程序之间的互联互通,一个应用程序(称为客户端)向另一个应用程序的 API 发送请求。客户端可以请求服务器上的资源,或者要求服务器执行特定的操作。

     一旦服务器接收并验证了客户端的请求,API 就会执行请求所要求的操作,然后将响应发送回客户端。响应中包括请求的状态(例如,成功完成或被拒绝)以及客户端请求的任何资源。

     因此,API Endpoint 在整个过程中充当了一个入口点,用于接收和处理客户端请求,并返回相应的响应。它提供了一种标准化的方式,使客户端能够准确地定位和访问服务器上的特定资源。

 

 04 —

API Endpoint VS API  ?

 

     在实际的项目开发过程中,Endpoint 和 API 是 2个密切相关的概念,它们之间存在一定的关系。

     API(应用程序接口)是一组定义了软件组件之间交互规范的接口。它描述了如何使用和访问特定的功能、服务或数据。API 定义了可用的操作、数据格式、参数等,以及与其它软件组件进行通信的方式和协议。

     Endpoint 是 API 中的一个概念,它是指 API 暴露给外部调用者的具体访问点或 URL。Endpoint 提供了访问 API 的入口,允许客户端发送请求,并从 API 获取所需的数据或执行操作。每个 Endpoint 通常代表 API 中的一个特定资源或功能。

     换句话说,API 是一个更广泛的概念,描述了整体的接口规范和功能,而 Endpoint 是 API 中的具体实现,表示 API 的一个具体访问点。

     通过 API,开发人员可以定义多个不同的 Endpoint,每个 Endpoint 对应 API 的不同功能或资源。每个 Endpoint 可能具有不同的 URL、HTTP 方法、参数、请求和响应数据格式等。

     总结来说,API 是整体接口的规范,描述了可用的功能和服务,而 Endpoint 是 API 中的具体访问点,表示 API 的实际可访问的 URL 或路由。Endpoint 实际上是 API 的具体实现,使得客户端可以通过特定的 URL 和参数与 API 进行交互。

     从另一角度而言,端点和 API 是不同的。端点是 API 的一个组件,而 API 则是一组允许两个应用程序共享资源的规则。端点是资源的位置,API 使用端点 URL 来检索所请求的资源" 

 

 05 —

为什么需要 API Endpoint ?

 

     通常来讲,API Endpoint 的存在是为了提供一个可访问和使用 API 的具体入口,使得客户端能够准确地请求和获取他们所需的特定资源。它简化了 API 的访问方式,并支持不同的操作、版本控制和安全性控制。具体如下所示:

     1、定位资源

     API Endpoint 允许客户端明确指定他们想要访问的特定资源。每个 Endpoint 通常代表 API 中的一个特定资源或功能。通过使用不同的 Endpoint,客户端可以定位和请求他们所需的特定数据或执行特定的操作。

     2、简化访问方式

     API Endpoint 通过提供一个统一的 URL 或路由,使得客户端能够简化访问 API 的方式。客户端只需使用特定的 Endpoint URL,无需了解底层的 API 实现细节,就可以轻松地与 API 进行通信。

     3、支持不同操作

     API Endpoint 可以支持不同的 HTTP方法(如 GET、POST、PUT、DELETE等),用于在客户端和服务器之间传递不同类型的请求和操作。通过使用不同的 HTTP 方法,Endpoint 可以执行不同的操作,例如获取资源、创建新资源、更新资源或删除资源。

     4、版本控制

     通过为每个 API 版本提供不同的 Endpoint,可以实现对 API 的版本控制。这样,当 API 进行重大更改或升级时,旧的 Endpoint 可以保持不变,以确保现有客户端的兼容性,而新的 Endpoint 可以引入新的功能或改进。

     5、安全性和权限控制

     API Endpoint 可以用于实施安全性和权限控制。通过对 Endpoint 进行身份验证、授权和访问控制,可以确保只有经过授权的客户端才能访问和使用 API 中的特定资源。



Tags:API   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
中国三大运营商共同发布通过GSMA Open Gateway认证的一次性密码 API
3月26日,北京:中国三大领先的移动运营商——中国移动、中国电信和中国联通今日发布商用OTP API(一次性密码API)服务,并通过了GSMA Open Gateway认证。此次发布标志着中...【详细内容】
2024-03-26  Search: API  点击:(18)  评论:(0)  加入收藏
如何免费访问和使用Gemini API?
Gemini是谷歌开发的一个新模型。有了Gemini可以为查询提供图像、音频和文本,获得几乎完美的答案。 我们在本教程中将学习Gemini API以及如何在机器上设置它。我们还将探究各...【详细内容】
2024-02-19  Search: API  点击:(59)  评论:(0)  加入收藏
构建 Web API 的两种流行选择:REST vs GraphQL
在 RESTful 和 GraphQL API 之间的选择取决于您的具体用例。RESTful API 适用于需要高可伸缩性的简单应用程序,而 GraphQL 则适用于具有不同数据需求的复杂应用程序。简介RES...【详细内容】
2024-01-09  Search: API  点击:(63)  评论:(0)  加入收藏
FastAPI:高性能Web框架的简介与应用
正文:在当今互联网时代,构建高性能的WebAPI是许多开发人员的关注重点。而FastAPI作为一个现代、快速的Web框架,为基于标准Python类型提示的API构建提供了强大的支持。FastAPI的...【详细内容】
2023-12-27  Search: API  点击:(101)  评论:(0)  加入收藏
理解 Spark 写入 API 的数据处理能力
这张图解释了 Apache Spark DataFrame 写入 API 的流程。它始于对写入数据的 API 调用,支持的格式包括 CSV、JSON 或 Parquet。流程根据选择的保存模式(追加、覆盖、忽略或报...【详细内容】
2023-12-13  Search: API  点击:(149)  评论:(0)  加入收藏
如何在Python中使用ChatGPT API处理实时数据
译者 | 李睿审校 | 重楼OpenAI公司推出的GPT如今已经成为全球最重要的人工智能工具,并精通基于其训练数据处理查询。但是,它不能回答未知话题的问题,例如: 2021年9月之后的近期...【详细内容】
2023-12-13  Search: API  点击:(227)  评论:(0)  加入收藏
伪原创API是什么?六个角度了解伪原创API
伪原创API,听起来可能对许多人来说是一个陌生的术语。然而,在当今数字化时代,尤其是在内容创作和网络营销领域,伪原创API正逐渐崭露头角。在本文中,我将向您深入介绍伪原创API是...【详细内容】
2023-12-11  Search: API  点击:(156)  评论:(0)  加入收藏
使用FastAPI部署YOLO模型的步骤
在计算机视觉领域,You Only Look Once (YOLO) 算法已经崭露头角,成为一种改变游戏规则的算法。它承诺具有卓越准确性的实时目标检测,使其成为从监视和自动驾驶车辆到图像和视频...【详细内容】
2023-12-06  Search: API  点击:(157)  评论:(0)  加入收藏
构建强大REST API的十个最佳实践
在项目开发中,我们经常会使用REST风格进行API的定义,这篇文章为大家提供10条在使用REST API时的最佳实践。希望能够为你带来灵感和帮助。1、使用具体且有意义的资源名称选择能...【详细内容】
2023-12-06  Search: API  点击:(149)  评论:(0)  加入收藏
前端请求到后端API的中间件流程解析
在前端请求到后端API的典型流程中,经过一系列中间件的处理,确保请求的顺利处理和安全性。以下是中间件的详细解析:1. 前端请求用户在前端发起请求,包括请求的URL、参数、以及其...【详细内容】
2023-12-06  Search: API  点击:(122)  评论:(0)  加入收藏
▌简易百科推荐
即将过时的 5 种软件开发技能!
作者 | Eran Yahav编译 | 言征出品 | 51CTO技术栈(微信号:blog51cto) 时至今日,AI编码工具已经进化到足够强大了吗?这未必好回答,但从2023 年 Stack Overflow 上的调查数据来看,44%...【详细内容】
2024-04-03    51CTO  Tags:软件开发   点击:(5)  评论:(0)  加入收藏
跳转链接代码怎么写?
在网页开发中,跳转链接是一项常见的功能。然而,对于非技术人员来说,编写跳转链接代码可能会显得有些困难。不用担心!我们可以借助外链平台来简化操作,即使没有编程经验,也能轻松实...【详细内容】
2024-03-27  蓝色天纪    Tags:跳转链接   点击:(12)  评论:(0)  加入收藏
中台亡了,问题到底出在哪里?
曾几何时,中台一度被当做“变革灵药”,嫁接在“前台作战单元”和“后台资源部门”之间,实现企业各业务线的“打通”和全域业务能力集成,提高开发和服务效率。但在中台如火如荼之...【详细内容】
2024-03-27  dbaplus社群    Tags:中台   点击:(8)  评论:(0)  加入收藏
员工写了个比删库更可怕的Bug!
想必大家都听说过删库跑路吧,我之前一直把它当一个段子来看。可万万没想到,就在昨天,我们公司的某位员工,竟然写了一个比删库更可怕的 Bug!给大家分享一下(不是公开处刑),希望朋友们...【详细内容】
2024-03-26  dbaplus社群    Tags:Bug   点击:(5)  评论:(0)  加入收藏
我们一起聊聊什么是正向代理和反向代理
从字面意思上看,代理就是代替处理的意思,一个对象有能力代替另一个对象处理某一件事。代理,这个词在我们的日常生活中也不陌生,比如在购物、旅游等场景中,我们经常会委托别人代替...【详细内容】
2024-03-26  萤火架构  微信公众号  Tags:正向代理   点击:(10)  评论:(0)  加入收藏
看一遍就理解:IO模型详解
前言大家好,我是程序员田螺。今天我们一起来学习IO模型。在本文开始前呢,先问问大家几个问题哈~什么是IO呢?什么是阻塞非阻塞IO?什么是同步异步IO?什么是IO多路复用?select/epoll...【详细内容】
2024-03-26  捡田螺的小男孩  微信公众号  Tags:IO模型   点击:(8)  评论:(0)  加入收藏
为什么都说 HashMap 是线程不安全的?
做Java开发的人,应该都用过 HashMap 这种集合。今天就和大家来聊聊,为什么 HashMap 是线程不安全的。1.HashMap 数据结构简单来说,HashMap 基于哈希表实现。它使用键的哈希码来...【详细内容】
2024-03-22  Java技术指北  微信公众号  Tags:HashMap   点击:(11)  评论:(0)  加入收藏
如何从头开始编写LoRA代码,这有一份教程
选自 lightning.ai作者:Sebastian Raschka机器之心编译编辑:陈萍作者表示:在各种有效的 LLM 微调方法中,LoRA 仍然是他的首选。LoRA(Low-Rank Adaptation)作为一种用于微调 LLM(大...【详细内容】
2024-03-21  机器之心Pro    Tags:LoRA   点击:(12)  评论:(0)  加入收藏
这样搭建日志中心,传统的ELK就扔了吧!
最近客户有个新需求,就是想查看网站的访问情况。由于网站没有做google的统计和百度的统计,所以访问情况,只能通过日志查看,通过脚本的形式给客户导出也不太实际,给客户写个简单的...【详细内容】
2024-03-20  dbaplus社群    Tags:日志   点击:(4)  评论:(0)  加入收藏
Kubernetes 究竟有没有 LTS?
从一个有趣的问题引出很多人都在关注的 Kubernetes LTS 的问题。有趣的问题2019 年,一个名为 apiserver LoopbackClient Server cert expired after 1 year[1] 的 issue 中提...【详细内容】
2024-03-15  云原生散修  微信公众号  Tags:Kubernetes   点击:(6)  评论:(0)  加入收藏
站内最新
站内热门
站内头条