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

一文搞懂 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   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除。
▌相关推荐
Hello folks,我是 Luga,今天我们来聊一下应用程序接口(API)生态相关的技术概念 - API Endpoint 。— 01 —到底什么是 API ? API ,即全称为 Application Prog...【详细内容】
2023-09-14  Tags: API  点击:(0)  评论:(0)  加入收藏
译者 | 李睿审校 | 重楼API可以返回大量的数据,这使得开发人员很难只检索他们需要的信息。这就是API的过滤和排序功能的用武之地。过滤和排序是API设计的两个基本功能,它们允...【详细内容】
2023-09-09  Tags: API  点击:(10)  评论:(0)  加入收藏
API(应用程序接口)是一种允许不同应用程序之间交换数据和功能的软件接口。API的性能是指API响应请求的速度和效率。API性能对于提供高质量的用户体验和服务可用性至关重要。...【详细内容】
2023-09-08  Tags: API  点击:(14)  评论:(0)  加入收藏
前几天 Gateway API 宣布在 0.8.0 中支持服务网格[1],这意味着 GAMMA[2](Gateway API for Mesh Management and Administration)有了新进展,虽然目前还是实验阶段。去年 6 月 Ga...【详细内容】
2023-09-08  Tags: API  点击:(12)  评论:(0)  加入收藏
译者 | 李睿审校 | 重楼API可以返回大量的数据,这使得开发人员很难只检索他们需要的信息。这就是API的过滤和排序功能的用武之地。过滤和排序是API设计的两个基本功能,它们允...【详细内容】
2023-09-08  Tags: API  点击:(7)  评论:(0)  加入收藏
新智元报道编辑:LRS【新智元导读】代码能否跑起来的不是判断可靠性的标准,用语言模型写代码还需要考虑生产环境下的预期外输入。大型语言模型(LLM)在理解自然语言和生成程序代码...【详细内容】
2023-09-05  Tags: API  点击:(34)  评论:(0)  加入收藏
我们知道对于 Java 应用可以通过 OpenTelemetry 提供的 Java agent 来实现自动埋点功能,在大多数场景下也完全足够了,但是有时候我们需要更加精细的控制,这时候我们就需要使用...【详细内容】
2023-09-05  Tags: API  点击:(30)  评论:(0)  加入收藏
网关作为应用系统的流量防卫兵,可以说在保障整个系统的稳定运转过程中发挥着不可或缺的作用。不管未来的技术形态如何演进,不管是否能出现云原生架构全面取代传统的部署模式,可...【详细内容】
2023-09-03  Tags: API  点击:(22)  评论:(0)  加入收藏
帮助我们为全公司范围内的新 API 奠定基础是令人兴奋的。 2022 年初,我所在的团队为我们的新 API 开发了概念验证并建立了标准。 快进到今天,您会发现跨越 12 个产品领域的 15...【详细内容】
2023-08-31  Tags: API  点击:(21)  评论:(0)  加入收藏
南开大学的李世阳、彭钰婷以《基于oneAPI大规模图计算异构加速框架设计》为题,分享了基于oneAPI设计的oneGRAPH在图计算领域带来的性能提升。以下内容根据李世阳、彭钰婷演讲...【详细内容】
2023-08-31  Tags: API  点击:(31)  评论:(0)  加入收藏
▌简易百科推荐
天来看看前端的大管家 package.json 文件相关的配置,充分了解这些配置有助于我们提高开发的效率,规范我们的项目。文章内容较多,建议先收藏在学习!在每个前端项目中,都有package....【详细内容】
2023-09-18    前端充电宝  Tags:Package   点击:(2)  评论:(0)  加入收藏
撰稿丨千山很早就有人问:Jetbrains 出了那么多集成开发环境(IDE),诸如IDEA、CLion、PyCharm、PhpStorm、GoLand、WebStorm等等,为什么不能整合成一个IDE,一招通吃呢?显然Jetbrains...【详细内容】
2023-09-18    51CTO  Tags:Rust   点击:(4)  评论:(0)  加入收藏
译者 | 布加迪审校 | 重楼您可能在日常的网上互动中遇到过聊天机器人,但有没有考虑过底层为这些数字助手提供支持的技术?聊天机器人(尤其在客户支持领域)已经成为现代企业的一个...【详细内容】
2023-09-18    51CTO  Tags:LangChain   点击:(3)  评论:(0)  加入收藏
Hello folks,我是 Luga,今天我们来聊一下应用程序接口(API)生态相关的技术概念 - API Endpoint 。— 01 —到底什么是 API ? API ,即全称为 Application Prog...【详细内容】
2023-09-14    架构驿站  Tags:API   点击:(0)  评论:(0)  加入收藏
译者 | 刘汪洋审校 | 重楼如今,分布式版本控制系统,例如 Git,在版本控制领域已然成为主流。有人认为,使用像 Git 这样的版本控制系统(VCS)进行分支和合并非常便捷。但我更推崇基于...【详细内容】
2023-09-14    51CTO  Tags:开发   点击:(3)  评论:(0)  加入收藏
作者 | Richard MacManus策划 | 言征Web3未能颠覆掉Web2,但新兴的大模型开发栈正在让开发者从“云原生”时代迈向新的AI技术栈。提示工程师或许不能触动开发者奔赴大模型的神...【详细内容】
2023-09-14    51CTO  Tags:大模型   点击:(4)  评论:(0)  加入收藏
/ PageCache 有什么作用? /在我们前面讲解零拷贝的内容时,我们了解到一个重要的概念,即内核缓冲区。那么,你可能会好奇内核缓冲区到底是什么?这个专有名词就是 PageCache,也被称为...【详细内容】
2023-09-13  灵墨AI探索室  微信公众号  Tags:零拷贝   点击:(2)  评论:(0)  加入收藏
编译器是将源代码转换为目标代码的关键工具,而IR 是编译器中的核心数据结构。IR的作用是将源代码转换为目标代码,并在此过程中执行各种优化,以提高目标代码的质量和性能。在编...【详细内容】
2023-09-12  小老头哦    Tags:编译器   点击:(5)  评论:(0)  加入收藏
分布式跟踪可以帮助查看整个请求过程中服务之间的交互,并可以让我们深入了解系统中请求的整个生命周期。它帮助我们发现应用程序中的错误、瓶颈和性能问题。OpenTelemetry 可...【详细内容】
2023-09-11  k8s技术圈  微信公众号  Tags:OpenTelemetry   点击:(7)  评论:(0)  加入收藏
热部署是软件开发中一个非常有用的功能,它允许我们在不重新启动整个应用的情况下,依旧能够使我们修改的代码生效。现在Java Web 开发应该都是使用的 SpringBoot,那么本篇文章就...【详细内容】
2023-09-11  Java技术指北  微信公众号  Tags:pringBoot   点击:(8)  评论:(0)  加入收藏
站内最新
站内热门
站内头条