您对 API 和 Endpoint 的区别了解多少?
API是一个众所周知的概念,当涉及到应用程序监控时,通常还会提到另一个概念——端点(Endpoint)。有时候这两个术语会被结合在一起使用,比如API端点。
虽然它们有一定的关联,但也存在一些区别。那么,在概念和使用上,API和端点有什么区别呢?在本文中,我们将探讨这个话题。
API接口
API(Application Programming Interface,应用程序编程接口)是一组预定义的规则和协议,允许不同的软件系统进行通信和数据交换,使开发人员能够在一个应用程序中利用另一个应用程序的功能或数据。
API适用于不同平台、语言和系统之间的通信。使用API时,可以向特定的URL发送请求(如GET、POST等HTTP请求),然后API根据请求类型和参数返回相应的数据。
API接口是实现这些规则和协议的具体实现。API接口可以包含多个端点(Endpoint),每个端点对应特定的功能或资源。
Endpoint(端点)
一般来说,"Endpoint"是指通信通道的一端,即两个系统进行交互的地方。
在网络编程中,Endpoint通常指代访问服务的地址,可以是URL、IP地址或其他形式的网络地址。Endpoint是客户端和服务器之间进行通信的入口点。在Web服务中,Endpoint通常表示一个URL,这些URL在API的文档中被描述,客户端通过这些URL访问服务器上的资源。
Endpoint是API的具体实现之一,用于访问API的特定功能,可以将其视为API的子集。
两者的区别
Endpoint和API接口之间的关系可以这样理解:
- Endpoint是API接口的组成部分,而API是一组规则,允许两个应用程序共享资源。
- 一个API接口可以包含多个Endpoint。
- Endpoint提供了服务器上资源的位置。在API中,Endpoint通常是统一资源定位符(URL)。
- Endpoint是客户端和服务器之间通信的入口点,而API接口是实现通信功能的具体实现。
- Endpoint关注的是如何访问服务,而API接口关注的是如何实现服务。
另外,Endpoint可以是一个API(通常称为"API Endpoint"),但它也可以只是一个URL,指向某个地方,没有明确操作任何数据,例如触发器、Webhook或网关等。
在日常使用中,通常会说:“有一个API,其中包含3个Endpoint。”API通常是一个定义的术语,而Endpoint或路由是其物理表示。当有人说“构建一个API”时,这意味着必须定义其规范,例如协议、请求/响应模式、安全凭证以及要请求的Endpoint。
举例说明
API就像是一组涵盖某些功能的方法,它是一个完整的应用程序,通过一系列方法(端点)提供这些功能。例如,视频API允许获取视频列表、获取视频评论列表、删除特定视频等。但是所有这些操作都由同一个API提供。
在Web API领域,API通常由URI或REST端点表示。最好从编程的类比来理解。以Java API规范为例,类中包含了方法和包。你可以将一个类看作是一个API,但实际上你调用的是它的方法。同样地,“/users"可以被称为"users” API,这也是一个端点。
举个例子,假设有一个天气查询的Web服务,它提供了一个API接口,包含两个功能:查询实时天气和查询未来几天的天气预报。这个API接口可能有两个Endpoint,分别对应这两个功能:
- 查询实时天气的Endpoint:https://api.example.com/weather/current
- 查询未来几天天气预报的Endpoint:https://api.example.com/weather/forecast
这里Endpoint是访问服务的URL,而API接口是实现这两个功能的具体实现。
小结
除了API和EndPoint之外,还有一些常见的概念,如URI和REST,它们之间的区别大致如下:
API是一个非常广泛的术语。通常情况下,它指的是代码之间的交互方式。在Web开发中,API通常指的是从在线服务中检索信息的方式。API文档提供了URL列表、查询参数和其他关于如何向API发送请求的信息,并指示每个请求将返回什么样的响应。
REST是一组构建Web API的规则、标准和指南。由于有许多构建API的方法,通过达成一致的API结构,可以节省在构建API时做决策的时间,并节省在使用API时理解的时间。
EndPoint是应用程序之间交互的地方。EndPoint是使API能够访问服务器上资源的URL。简单来说,EndPoint是当两个系统进行交互时通信通道的入口点。它指的是API和服务器之间通信的接触点。API通过“请求”和“响应”进行操作。
URI(统一资源标识符)是一个用于标识名称或资源的字符串。相反,EndPoint是表示特定API资源或活动的单个URL。然而,URI是一个更广泛的概念,可以标识任何类型的资源,而不仅仅是通过API公开的资源。URI可以是URL(统一资源定位符),用于指定互联网上资源的位置,也可以是URN(统一资源名称),通过名称而不是位置来标识资源。
推荐阅读
-
您对 API 和 Endpoint 的区别了解多少?
-
您对显卡 a 卡和 n 卡的区别了解多少?
-
您对干式水表的原理和设计了解多少?
-
了解在 mysql 的 varchar 中可以存储多少汉字和数字,以及 varchar(100) 和 varchar(10) 之间区别的文章
-
您对肿瘤异质性的构成和影响了解多少?
-
三分钟带你了解手机内部硬件-主要影响手机性能的有以下几点 CPU - *处理器(手机中的大脑) CPU 是计算思考以及处理事物的。 比如:我们日常玩手机,什么最重要?毫无疑问是手机打开软件很流畅,使用各种功能不卡。 这就是CPU的性能,那什么影响 CPU 的因素有哪些? 架构 架构是 CPU 的基础,对于处理器的整体性能起到了决定性的作用,不同架构的处理器同主频下,性能差距可以达到2-5倍。可见架构的重要性。 那么什么是架构呢? 打个比方,架构就是一栋楼的框架。至于最终楼什么样子,就由处理器的厂商决定了,但是有一点,如果说这栋楼房的结构设计出来容纳多少人,那么最后建好的房子也要在这个范围内。同理,如果使用相同架构的处理器,那么本质上不会有太大的区别。 看一下主流手机的架构 处理器对比.jpg 从上图可见:高通 和 苹果都是自主设计,所以说它们牛还是有一定的道理的。不同的架构, 性能和功耗也是不同的。架构决定了 主频、核心数、带宽等和运算量直接相关的东西。目前很多手机打广告都是说 多少核的机器。但是并不是说核越多性能就越强,你没看见,苹果双核就能吊打高通和联发科吗? 制程 制程 专指:事物运作程序的处理过程。常指手机芯片框架的运算速度量。 简单的说就是电路板中电路与电路之间的距离,目前已经发展到纳米级别。 制程越小,可以向芯片中塞入更多的晶体管,随之而来的好处还有:降低电量和成本、散热。 制程数的确定 这里有人要问,为什么制程的数字是这些,而不是别的数字,比如有28nm,为什么没有29nm? 这其实是有一定规律的。根据早期国际半导体蓝图规划,由五个在相关领域较为发达的国家共同制定,约定下一代制程要在上一代基础上做到晶体管数量不变,芯片面积缩小一半。由这一关系可以算出前一代制程要比后一代大√2倍,所以能算出后一代大概数值。纵观整个处理器制程变化,除了少部分特殊的外,都遵循着这一规则。 近代制程的发展 2014 年底,三星宣布了世界首个 14nm FinFET 3D 晶体管进入量产,标志着半导体晶体管进入 3D 时代。发展到今天,三星拥有了四代 14nm 工艺,第一代是苹果 A9 上面的 FinFET LPE(Low Power Early),第二代则是用在猎户座 骁龙 820 和骁龙 625 上面的 FinFET LPP(Low Power Plus)。第三代是 FinFET LPC,第四代则是目前的 FinFET LPU。至于 10nm 工艺,三星则更新到了第三代(LPE/LPP/LPC)。 目前为止,三星已经将 70000 多颗第一代 LPE(低功耗早期)硅晶片交付给客户。三星自家的猎户座 8895,以及高通的骁龙 835,都采用这种工艺制造,而 10nm 第二代 LPP 版和第三代 LPU 版将分别在年底和明年进入批量生产。 手机芯片市场上已经进入了 10nm、7nm 处理器的白热化竞争阶段,而 14/16nm 制程的争夺也不过是一两年前的事。 总线位宽 总线位宽决定输入/输出设备之间一次数据传输的信息量,用位(bit)表示,如总线宽度为8位、16位、32位和64位。