API和端点一直是前端开发者和后端开发者讨论的热门话题。为了开发有用的和可持续的应用程序和服务,API一直是强大的媒介和推动者。
API促进了各种软件工件之间的数据传输,以解决客户的问题。几乎所有的现代基于网络的产品都提供自己的API,以便与之互动并将其服务直接整合到任何项目中。
为了跟上你的竞争对手并为你的用户提供跨平台的无缝体验,你需要了解并掌握API的游戏。
本指南将对这个术语进行分解,帮助你了解什么是API端点,你如何消费一个公开可用的API,以及保护和监控你的API端点的各种方法。
了解API端点
“API “是 “应用编程接口 “的简称。它本质上是一套规则,允许一个应用程序与其他应用程序分享其数据。简单地说,一个API将使你能够在你的应用程序和第三方应用程序之间 “分享东西”。
一个API端点是一个通过API暴露的数字位置,API从那里接收请求并发出响应。每个端点都是一个URL(统一资源定位器),提供API服务器上资源的位置。
要了解API的目的和用途,首先让我们了解它们如何工作。
API是如何工作的
对于两个软件应用程序在互联网上的通信,一个应用程序(被称为客户端)向其他应用程序的API终端(被称为服务器)发送请求。根据API的能力,客户端可能从数据库中请求一个资源,或要求服务器在其环境中执行一些行动并返回结果。
在收到客户端的结果后,API(或服务器)会执行所请求的操作,并将操作结果以响应的形式发回给客户端。这个响应也可以包括客户要求的任何资源。
可以有各种类型的API,包括REST、SOAP和GraphQL。它们的工作方式各不相同,但其目的仍然是相同的:促进基于网络的实体之间的通信。在本指南中,我们将主要讨论REST APIs,因为它们是全球最流行的API。
API和端点之间有什么区别?
这给我们带来了下一个也是最常见的问题。API和端点之间的区别是什么?
API是一套协议和工具,用于促进两个应用程序之间的互动。端点是API上发生交换的一个地方。端点是API上的URI(统一资源索引),应用程序可以访问。
所有的API都有端点。没有端点,就不可能与API互动。
端点如何与API一起工作?
为了加深你对API和端点的理解,让我们举一个小例子。
考虑一下Cat Facts API。这个API提供随机的猫的事实。然而,它列出了各种端点,你可以使用这些端点来请求分类的信息。有三个可用的端点:
/fact:
返回一个单一的、随机的猫的事实。/facts:
返回一个随机的猫的事实列表。/breeds:
返回一个猫咪品种的列表。
要向这个API发出请求并检索猫的事实,你需要在API的基本URL(即https://catfact.ninja/)上附加正确的端点(即 /fact
)。这将给你以下的端点URL:https://catfact.ninja/fact
如果你向上述URL发送一个 GET
请求,你会收到一个类似的结果:
{ "fact": "Spanish-Jewish folklore recounts that Adam\u2019s first wife, Lilith, became a black vampire cat, sucking the blood from sleeping babies. This may be the root of the superstition that a cat will smother a sleeping baby or suck out the child\u2019s breath.", "length": 245 }
现在,如果你访问另一个端点,如 /breeds
,你就无法获得这些数据。这就是端点如何帮助与API提供的资源进行互动和组织–每个端点都是针对数据的特定部分。
为什么API端点很重要?
数据传输和资源共享是互联网的一些基本基础。每一天,越来越多的进程和应用程序被添加到全球网络中,通过分享东西为网络增加价值。
如果没有API,这一切都不可能实现。API为基于网络的应用程序之间的沟通和互动提供了一个强大的媒介。
而API端点则有助于确定API中资源的确切位置。它们帮助API开发者组织可用的资源,也控制消费者的访问。因此,消费API的应用程序的性能和生产力直接取决于API端点的设计和性能。
利用现有的API端点工作
在大多数情况下,你会被要求使用预先建立的API。为了有效地做到这一点,你需要了解如何定位端点,并在行业内使用的各种版本规则中找到自己的方式。本节将引导你了解这些。
定位一个API端点
如果你能看到API文档,找到一个API端点是一项简单的工作。有时,文档可能会简单地列出端点,并在每个端点旁边有简短的描述。在其他情况下(比如Swagger),文档可能更复杂、更强大,你可能可以直接从文档页面测试端点。
在任何情况下,在开始使用每个端点之前,花时间去了解它的目的,是最符合你的利益的。这可以帮助你避免大多数错误,提高你的效率。
API端点的版本管理
像大多数其他软件工件一样,API也是有版本的。版本化有助于在开发过程中观察和分析API的成长。如果能够访问旧版本,还可以帮助你在有问题的更新中回滚到以前的稳定版本。下面是一些常见的API端点的版本划分方式。
URI路径
最流行的API端点版本控制方式之一是在URI路径中包含一个版本号。它可能看起来是这样的:
http://example.com/api/1/resourcename
你可以把这种方法看作是对API端点进行全局版本管理的一种方式。如果你为你的API使用一个子域,例如:
http://api.example.com/resourcename
……你也可以在你的子域里放一个版本指标,像这样:
http://api-v2.example.com/resourcename
正如你所看到的,这种方法修改了API的URI路线,所以每个版本本身就表现为一个独立的资源。这意味着你可以根据需要同时访问两个版本的API,甚至可以独立地对它们进行缓存,以加快访问速度。
当在URI路径中包括一个版本号时(而不是在子域中),这里有一个整洁的格式,你可以按照它来包括更多的信息:
MAJOR.MINOR.PATCH
例如,我们上面的例子中的内部API将是这样的版本:
http://example.com/api/1.2.3/resourcename
现在,让我们来分析一下这些新的版本术语和每个术语的作用:
- MAJOR: 当你进行不兼容或破坏性的API修改时。
- MINOR: 用于添加向后兼容的功能
- PATCH: 用于向后兼容的错误修复
这里的MAJOR版本是公共API中使用的版本。这个数字通常在API发生重大或突破性变化时被更新。在内部,这种变化表明一个新的API实例或资源已经被完全创建。
MINOR和PATCH版本在内部用于向后兼容的更新。当新的功能被引入时,或者当对同一API资源做了微小的改变时,它们通常会被更新。PATCH号是专门为错误修复或问题解决的更新而更新的。
- 优点:
- 可以同时访问多个版本。
URL命名遵循一个简单、标准的惯例,因此API端点的可访问性很高。
- 可以同时访问多个版本。
- 局限性:
- 在发生破坏性变化的情况下,这种方法会导致开发一个新的API资源。这可能会给你的代码库增加很大的重量。
查询参数
另一种对REST API进行版本管理的方法是把版本号放在其URL的查询参数中。它使服务器环境能够像其他查询参数一样访问所需的版本号,并使用它来重定向应用程序中的控制流。你不需要完全创建一个新的API资源,因为你现有的API资源可以读取版本号并根据需要进行操作。
这就是前一个例子中的URL在使用查询参数进行版本管理时的样子:
http://example.com/api/resourcename?version=1
- 优点:
- 非常容易在代码中实现。
你可以迅速默认为最新的版本。
- 非常容易在代码中实现。
- 局限性:
- 与URI路径版本控制相比,使用参数将请求路由到正确的版本可能更具挑战性。
自定义标头
你也可以通过提供以版本号为属性的自定义头文件来为REST API提供版本。这种方法与前面提到的两种方法最显著的区别是,这种方法不会在端点的URL上乱写版本信息。
这就是之前的例子在使用这种方法进行版本管理时的样子:
curl -H "Accepts-version: 2.0" http://example.com/api/resourcename
- 优点:
- URL不会因为版本信息而变得杂乱无章。
客户端可以硬编码API端点的URL,并在快速发送请求的同时通过标头信息选择版本。
- URL不会因为版本信息而变得杂乱无章。
- 局限性:
- 每当提出任何请求时,你都需要手动设置自定义标头信息。
内容协商
内容协商允许API开发者对资源的单一表示而不是整个API进行版本管理。这让他们对版本控制有了更细化的控制。就像之前的方法一样,这种方法也能消除API URL的混乱。
这就是我们之前的例子在通过内容协商进行版本管理时的样子:
curl -H "Accept: application/vnd.kb.api+json; version=2" http://example.com/api/resourcename
然而,使用这种方法的端点版本比使用URI方法的端点更难访问。更重要的是,使用带有媒体类型的HTTP头使得在浏览器中测试API变得很困难。而且,如果内容标头是可选的,就会造成客户默认接收哪个版本的混乱。
假设你发布了API的v2版本,并废除了旧版本的v1。如果客户端没有在其请求中指定版本,它将收到v2版本的资源,这可能会由于未考虑的兼容性问题而破坏其功能。这就是为什么通常不推荐将内容协商作为API版本控制的手段。
- 优点:
- 如果需要,你可以对单一资源进行版本管理。
它创造了一个更小的代码足迹。
它不需要你修改路由规则(URLs)。
- 如果需要,你可以对单一资源进行版本管理。
- 局限性:
- 带有媒体类型的HTTP标头使我们很难在浏览器中测试和探索端点。
也请记住,缺少内容标头可能会破坏客户端的功能。
- 带有媒体类型的HTTP标头使我们很难在浏览器中测试和探索端点。
API端点的例子
为了更好地理解API和端点,我们将使用Twitter API来说明一个例子。这个API公开了社交媒体平台上关于推文、直接信息、用户等的数据。它提供各种端点来对其数据进行各种操作。
例如,你可以使用推特查询端点 (https://api.twitter.com/2/tweets/{id}
) ,通过使用其独特的标识符来检索特定推特的内容。你还可以使用Twitter API将公开的推文实时流转到你的网络应用中,使你的用户了解某个感兴趣的话题。
Twitter API为此提供了一个过滤的流端点 (https://api.twitter.com/2/tweets/search/stream)。他们还创建了一个你可以使用的其他端点的扩展索引。
如何保证API端点的安全?
现在你已经了解了API端点的外观和工作原理,关键是要知道如何保护它。如果没有足够的安全措施,API端点可能是你的应用程序的一个主要缺陷,可能会导致数据和资源泄露。
这里有一些基本建议,以确保对你的API端点的访问。
单向密码哈希
在构建网络资源时,你会经常遇到密码作为认证实体的一种方式。虽然密码有助于保护用户的应用数据,但你也需要保护密码的存储,使其成为真正有效的认证媒介。
一般来说,你不应该把密码存储为纯文本。在发生安全漏洞的情况下,如果一个坏的行为者得到了他们的用户名和密码字符串对表,所有的用户账户都会被破坏。
阻止这种情况的方法之一是在存储之前对它们进行加密。有两种加密方法 – 对称和非对称。
在对称加密中,你可以使用相同的加密密钥来锁定和解锁内容。然而,这并不建议用于密码,因为顽固而复杂的黑客可以轻易破解这些密码。
建议使用单向或 “非对称 “加密的方式来存储密码。不采用单一的加密密钥,而是采用数学函数来扰乱数据。
加密后的版本被存储在数据库中,这样就没有人,包括你的服务器管理员,可以破译密码并查看它们。对于验证用户,输入的密码通过同样的数学函数运行,并比较结果以检查输入的密码是否正确。
HTTPS
假设你的API端点是为了让消费者与你的服务对话。在这种情况下,如果你不实施HTTPS(或其他类似的安全协议),就会使他们面临巨大的风险。
API连接通常会交换敏感数据,如密码、密匙和支付信息。这些数据很容易被中间机器攻击或通过数据包嗅探的方法窃取。
这就是为什么你应该让它成为一个点,只要有机会就选择HTTPS。如果你的应用程序目前正在使用HTTP协议,你应该强烈考虑迁移到HTTPS。不管连接是多么微不足道,它总是会导致泄漏。
你还应该考虑使用TLS或SSL证书,以进一步提高你的API的安全性。
速率限制
在大多数情况下,对你的API在一分钟内的使用次数设置一个限制是一个好主意。它可以帮助你控制任何资源的滥用,并带来基于消费者流量的管理定价模式。
然而,实施速率限制的一个主要原因是为了避免自动化的资源过度使用,这通常是由于机器人每秒可以同时发送数百或数千个请求。速率限制还可以帮助你阻止这些机器人发起的任何DDoS攻击。
大多数网络开发框架都提供了开箱即用的速率限制中间件,很容易设置。即使你的框架没有中间件,你也可以通过第三方库获得一个中间件,并相当快地设置好它。
除了关注机器人,将允许的请求或数据检索数量限制在一个合理的数量也是一个好的做法。这样做有助于防止无意中过度使用资源,这些资源可能通过手动错误(如无限循环)被触发。它还有助于为你的用户提供统一的可用性–一个用户的使用量激增不会影响其他用户的体验。
API认证措施
每当你建立一个面向公众的API时,你需要实施认证措施以防止误用和滥用你的服务。一个好的选择是OAuth2系统。
OAuth2系统将你的账户划分为资源,并允许你向认证令牌持有者提供受控的访问。你可以设置这些令牌在给定的期限内过期–比如说24小时–之后它们会被刷新。这确保了即使你的令牌被泄露,有限的使用窗口将减少泄露的影响。
API安全的一个重要部分是使用API密钥来验证请求。你可以设置API密钥来限制对你的API的调用率,减少DoS攻击的机会。如果你提供付费的API服务,你可以使用API密钥,根据每个用户购买的计划提供访问。
你还应该考虑为你的内部员工端点配备多因素认证、防病毒软件和自动应用程序更新。这些简单的措施将在很大程度上确保你所提供的服务质量不受影响。
输入验证
虽然这听起来像是在构建任何软件应用时要做的一件显而易见的事情,但令人惊讶的是,很多API都没有正确地实现这一点。输入验证不仅是指检查输入的数据是否有正确的格式,而且也要注意是否有意外。
最简单但最常见的例子之一是SQL注入。如果执行了错误的查询,不对其进行覆盖,会使你的整个数据库消失。一定要验证输入数据的正确格式,并删除可能显示恶意的字符。
另一件需要注意的事情是请求的大小。在POST请求的情况下,试图接受和解析一个非常大的输入,只会让你的API崩溃。你应该始终专注于首先验证POST请求的大小,并在适当的时候向客户返回一个适当的错误代码和信息。
IP地址过滤
如果你提供B2B服务,并且你的客户在全球各地使用你的API,你应该考虑为你的系统增加一个额外的安全层,根据他们的位置,限制访问你的API的IP地址。
对于新的地点和客户,你需要将他们的数据添加到你的 “允许地点 “列表中。虽然这可能会给你的客户的入职过程增加额外的摩擦,但它将大大有助于提高安全性,反过来也会提高他们的体验质量。
为了进一步减少安全风险,你还应该考虑将客户的权限和访问限制在标准操作所需的最低限度。同样地,限制你的HTTP访问,以确保配置错误的客户只收到API规格和访问代码。确保你的API以405响应代码拒绝这些请求。
值得注意的是,世界上很大一部分网络攻击都来自于有限的几个国家。另一个好的做法是,如果你在这些地方没有客户,就完全阻止从这些地方访问你的资源。
此外,如果你发现有攻击,首先要阻止来自攻击者所在地区的GET/POST请求。根据客户所在地限制HTTP请求的能力是对付正在进行的网络攻击的最快方法之一。
XDR(扩展检测和响应)
大多数组织部署了传统的安全工具,如防火墙和入侵保护/检测技术。虽然这些是任何安全系统的基础,但它们不是为API明确设计的。
一种名为XDR的新技术为整个IT环境(包括API端点)提供了更好、更全面的保护方法。XDR为安全团队提供了关于恶意行为的实时警报,这使他们能够迅速调查攻击。
以下是XDT保护API端点的一些方法:
- HTTPS监控: XDR可以管理你的端点的安全证书,也可以检查HTTP通信。当它发现异常情况时,它可以迅速终止连接或采取其他自动行动。
- API调用监控:XDR可以跟踪你的客户进行的API调用的数量,并在发现可疑的趋势时通知你的安全团队,即使在设定的速率限制内。
- JSON网络令牌(JWT):JWT是一种标准方法,用于在通过网络进行通信时安全地表示用户的身份。XDR可以帮助在你的网络上通过JWT识别用户,而不必传输凭证。这使您能够在您的API流量中识别用户账户,并分析他们的行为是否有异常情况。
- IP地址过滤:XDR与威胁情报数据库整合得很好,并检查传入请求的合法IP地址或来源。
- 输入验证:即使您在服务中没有实施适当的输入消毒措施,XDR解决方案也能自动分析SQL或其他数据库敏感查询,以检测注入攻击,在其轨道上阻止它们,并通知安全团队。
维护程序
有一些一般的维护程序,你可以设置这些程序来提高你的API的安全质量。下面是其中的一些:
- 清理数据: 从你的服务中删除多余的用户和雇员数据。常规的数据清理不仅是一种良好的做法,而且还有助于减少意外数据丢失或损坏的机会。
- 进行定期更新:记住要定期更新你的技术栈和服务认证。你应该为你的端点服务实施常规补丁,你的所有许可应该反映最新的监管和合规标准。
- 审查安全措施:保持你的安全和恢复计划是最新的。它们应尽可能频繁地反映你的网络基础设施的最新变化或增加的内容。如果你定期增加新的移动、物联网或其他内部资源,这种做法就更加关键。
监测API端点
现在你已经了解了如何构建、消费和保护API端点,接下来要知道的是如何监控它们。 监控是一个关键的概念,它适用于整个软件工程的动态,以分析和加强技术产品的增长。
提示、技巧和最佳实践
就API端点而言,监控可以帮助你保护和优化你的端点,以提高性能和可靠性。接下来的部分将引导你了解在对API端点进行检测和监控时需要遵循的一些最佳实践。
1. 验证功能正常运行时间
一般来说,团队倾向于监测API可用性或正常运行时间,并将其作为衡量API服务质量的标准。然而,对于通过API发生的各种类型的数据交换交易,仅仅测量API的整体可用性是不够的。你需要单独监控所有动词(创建、读取、更新、删除等)的可用性和性能,以确保它们都在运行。
要做到这一点,你可以用多步骤的API监控器实施合成监控工具。它将帮助你同时提高API和数据的可用性。同时,你应该记住,合成监控使用一组有限的、预定义的API调用进行测试。所以实际的真实世界的流量可能与合成监控中的输入集不同。
2. 记住监控API的依赖性
不是每个API都是独立构建的。更多的时候,你需要在构建自己的API时消耗第三方的API。虽然你可以对你的代码进行最深层次的检测,但你很容易忘记跟踪这些第三方API的行为。
因此,你也必须跟踪来自第三方API的响应。根据我们的经验,每当我们没有独立分析这些依赖关系时,有问题的依赖关系就会引起很多骚动。
3. 在API监控中实施自动测试
如果你有一个定义明确的CI/CD管道,你可能已经知道自动化的重要性。因此,如果你能在监控的同时为你的API端点设置自动测试,那是最好的。你应该考虑在你的CI/CD管道中增加一个额外的步骤,在发布前对你的端点运行自动化测试。虽然这在当前已经成为一种常态,但你应该检查你是否已经实施了它。
4. 选择一个具有强大警报功能的工具
由于目前市场上有各种各样的工具,要找到适合你使用情况的工具可能会变得很棘手。为了使你的搜索更容易,这里有一个快速的规则需要记住。始终寻找强大的警报能力。如果你所选择的工具不能正确地提醒你关于传入的问题,你将不得不浪费时间持续干预以检查是否有任何事件发生。这个领域的自动化在提高你的团队的生产力方面有很大的作用。
5. 优先考虑可直接集成到CI/CD管道中的工具
你应该考虑在你的CI/CD管道的每个阶段整合监控,以分析你的DevOps流程的效率。为此,你需要仔细选择能提供这种功能的工具。
要检查你所选择的工具是否有这个功能,请寻找所提供的第三方集成的列表。如果你的CI服务器,如Jenkins或GitHub,被该工具所支持,你就可以开始了
6. 决不妥协于API的隐私
一些API监控工具利用第三方SaaS平台,要求客户在他们的防火墙上打开某些端口,以监控本来无法到达的内部API。然而,这些构成了一个重大的安全风险。任何了解这些端口的人都可以利用它们来获得对你的系统的未经授权的访问。
这就是为什么必须选择一个好的API监控解决方案,将你的API的设计考虑在内,并允许你安全地监控每个端点,无论是内部还是外部。为此,最好的工具是能够私下访问你的内部API,而不给入侵者留下空间。
7. 24小时全天候监控
如果不一直监控你的API,就会让你损失巨大。 任何服务都可能在任何随机的时间点发生故障。如果你的监控服务在那个时候被关闭了,你就必须等到服务恢复时才知道发生了停机。在这个窗口期,你可能会失去宝贵的业务。
因此,我们建议你设置高频率的监控,每小时至少运行五次,用于功能测试,每小时一次,用于安全和OAuth监控。
8. 倾向于外部监测而不是内部监测
很多时候,问题不会在内部和外部统一发生。你的用户可能会面临一个你在系统的防火墙内无法重现的问题。在这种情况下,你的内部指标是否执行正确并不重要;用户不能访问你的产品,所以每一个操作指标都没有什么用。
为了避免这种情况,总是倾向于使用外部监控设置而不是内部监控。为了解决用户所面临的问题,你需要从用户的角度来看待你的API。
9. 监控所有资源
在构建API背后的服务或应用的过程中,你可能会设计一些基本或复杂的组件。虽然跳过对基本组件的监控是很诱人的,但这并不是所有情况下的好做法。很多时候,一个不重要的、简单的组件中一个看似微不足道的错误可能会破坏一个广泛的应用程序。
如果你不是到处都有眼睛,你将被迫浪费几个小时试图找到导致问题的组件,结果发现你认为太无辜的一个小部件的错误实际上是罪魁祸首。
10. 分析所有的响应参数
只检查状态代码是否返回200是不够的。大多数开发人员使用基本的HTTP状态代码,如200表示成功,500表示服务器错误,以表示通用响应。然而,成功或错误可以有各种形式,跟踪每一个实例对于确定你的API的表现是至关重要的。
你还应该考虑寻找由API返回的内容的大小变化。如果通常的响应大小为500kb,但你只收到100kb或更少,你可能遇到了某种类型的失败。
API监控工具
为了实施上述的最佳实践,你需要从API监控解决方案开始。虽然像WordPress这样的框架中有现成的插件用于API监控,但如果是纯编码的应用程序,你需要寻找一个更全面的解决方案。
在下一节中,我们将讨论一系列趋势性的API监控工具,以帮助你以最小的成本和精力开始工作。
Uptrends
Uptrends账户概览仪表盘
Uptrends提供对网络应用程序、API、服务器等的监控。它拥有超过25000个小型和大型组织的庞大客户群,包括一些著名的名字,如微软、Vimeo和大众汽车。
该供应商提供的一个引人注目的功能是基于浏览器的测试。它使用实际的、独特的浏览器来运行你的应用程序和网站,并捕获关于其性能的详细指标。
然而,响应时间和指标并不是该服务的唯一功能。有了Uptrends,你还可以得到每一个资源的详细性能报告,以便你了解系统中所有可能的瓶颈类型。对于每个错误,Uptrends都会进行截图并发送给你,这样你就可以体验到错误发生时的情况。
Dotcom-Monitor
Dotcom-Monitor的性能报告仪表盘
Dotcom-Monitor为使用户能够使用HTTP或HTTPS作业配置一个多任务监控设备而感到自豪。这使得你可以监控网络API的可用性,正确的响应和性能。
Dotcom-Monitor代理复制一个或多个客户端请求,以验证数据是否能在API和客户端之间进行充分的交换。当其中一个代理检测到一个错误时,它会根据预设的过滤器列表检查该错误。如果错误没有被设置为过滤掉,代理就会触发一个警报。
该工具允许你设置自定义警报时间表和升级方案。你可以以各种格式导出错误报告,包括CSV、PDF、TXT等。Dotcom-Monitor的错误报告显示了不同的有价值的指标,如停机时间、响应时间和各地区的平均性能。
Dotcom-Monitor是最实惠的API监控解决方案之一,其计划从每月1.99美元开始。如果你是一个预算有限的成长型组织,Dotcom-Monitor可能正是适合你的API监控解决方案。
Graphite
Graphite API监控仪表盘
Graphite是一个开源的API监控系统,通过让服务将数据推送到Graphites Carbon组件,使你能够从API中捕获指标。然后,Graphite将这些数据存储到一个数据库中,以便从中获得洞察力。
Graphite在用户中很受欢迎,因为它的安装过程很简单,其中包括其堆栈的自动安装和配置脚本,称为Synthesize。
Graphite提供的另一个引人注目的功能是能够存储任意的事件。这些事件一般与时间序列指标有关。你还可以在Graphite内添加和跟踪应用程序或基础设施的部署,使你的开发团队能够更快地找到问题和瓶颈的来源,并获得更多关于导致意外行为的事件和异常的背景。
Sematext
Sematext Synthetics仪表盘
Sematext是DevOps团队中流行的解决方案,因为它提供了一套监控工具。API监控是其合成监控服务的一部分,这被称为Sematext Synthetics。
Sematext提供了一个复杂的API监控和警报系统,你可以根据各种错误和指标来定制工作。你可以设置这个工具,在发送警报前进行双重或三重检查。它可以帮助你消除警报中的误报,提供更准确和相关的信息。
除了Sematext提供的强大的HTTP监控,你还可以得到一个全面的浏览器监控功能。它使你能够根据预先编写的用户与你的Web应用程序的互动来收集Web性能指标。这意味着你可以超越通常的测试标准,跟踪页面加载时间,内容绘制时间等,并深入研究详细的模拟用户互动,如应用内认证流程,搜索查询执行,或从购物车中添加或删除项目。Sematext提供各种这样的用户互动,开箱即用。
BlazeMeter
BlazeMeter API监控仪表盘
Blazemeter是现代应用程序的首要端到端测试和监控解决方案。该工具让你可以完全自由地选择开源测试框架,并使用简单的仪表盘对其进行分析。它还提供与Apache JMeter的无缝集成,后者是复杂网络应用的最佳性能测量工具之一。
与大多数API监控解决方案一样,BlazeMeter也提供了功能测试(被称为 “场景”)等基本功能,您可以使用交互式图形用户界面进行设置。BlazeMeter通过其专用测试工具Taurus暴露了一个DSL(特定领域语言),使开发人员能够编写通用测试。然后您可以针对JMeter和其他流行的开源工具运行这些测试。
鉴于其重量级的设计,BlazeMeter的价格偏高。如果你的应用程序有超过5000个并发用户,你应该准备好每月掏出600美元以上。不过,你可以根据你的使用情况选择固定费用计划。
如果您的产品与辉瑞、Adobe、NFL、Atlassian等公司的产品一样,BlazeMeter就是您的完美API监控解决方案。
虽然这是一个相当简洁的API监控工具的集合,但还有许多更棒的选择在那里。在做出选择之前,请确保查看Geekflare提供的API监控工具的详细集合,以及Sematext提供的API监控工具的全面购买指南。
小结
API是现代计算机器的骨干。软件市场上的大多数产品都有一个API,以提供与第三方实体的无缝集成。为了提供流畅的用户体验并留住你的客户,你需要考虑在你的软件产品中建立并提供一个API……这意味着你需要了解API的内涵。
本指南旨在帮助你进入这个领域,向你介绍该技术的基础知识,包括说明基本概念、最佳做法和市场上有用的API监控工具。希望你现在对网络资源如何相互通信有了更好的理解。
然而,尽管我们讨论了这么多,但对于API和API端点所能完成的一切,我们还仅仅是触及了表面。继续阅读、测试,并与开发社区联系,以扩大你对API端点的了解和技能。
评论留言