什么是 API2025年3月17日 | 阅读 12 分钟 应用程序编程接口 (API) 是一个 软件 接口,它允许两个应用程序在无需用户参与的情况下进行通信。它是一组计算机程序和操作。它是一种可以查看或执行的软件代码,能够实现两个软件程序之间的数据交换和通信。 命令行工具、企业代码、微服务和云原生架构等都是 API 概念的应用场景。它是一个可以以编程方式与开发者代码本身不包含的软件资源或组件交互的接口。它是软件组件中其他组件可以访问的区域。除非你从头开始编写每一行代码,否则你都会与外部软件组件进行交互,而这些组件中的每一个都有自己的 API。即使你从头开始编写所有代码,一个设计良好的应用程序也应该包含内部 API 来帮助组织代码并使其部分更具可重用性。 无论是创建基本应用程序还是最复杂的设计和架构考虑,API 都至关重要。它允许产品和服务进行交互,而无需了解这些产品和服务是如何实现的。 ![]() API 如何工作?API 是一组规则,用于描述 计算机 或 程序 之间如何交互。(通常,API 规范将包含这些标准的文档。)API 是一个中间层,负责处理系统之间的数据传输,位于应用程序和 Web 服务器之间。 API 的工作方式如下: 客户端应用程序发起一个称为 API 调用的 API 请求以获取信息。此请求包含请求动词、标头,有时还包含从应用程序到 Web 服务器的请求正文,由 API 的统一资源标识符 (URI) 处理。
虽然数据传输方式因所使用的 Web 服务而异,但整个请求和响应过程都由 API 处理。API 允许计算机或其他程序访问应用程序的数据和功能,而图形用户界面仅允许人类访问。 由于 API 端点将使用服务的应用程序与提供服务的底层基础设施分开,因此 API 作为中介的作用天然地提供了安全性。可以通过 API 网关限制访问以减少安全威胁,并且 API 调用中通常包含授权凭证以限制服务器被入侵的可能性。通过使用 HTTP 标头、Cookie 或查询字符串参数,可以进一步确保数据交换的安全性。 ![]() 例如,假设有一个支付处理服务的 API。在在线商店应用程序的前端,客户可以输入他们的卡详细信息。支付处理程序不需要访问用户的银行账户,因为 API 会为该交易创建一个唯一的令牌并将其包含在发送到服务器的 API 调用中。因此,可以更好地防范被黑客攻击的风险。 我们为什么要需要 API?应用程序编程接口可以帮助您管理现有工具或创建新工具,同时简化该过程。以下是使用 API 的几个原因:
API 的特性API 的特性可能包括:
API 类型API 主要有四种类别: ![]()
API 的通信级别API 的通信级别分为两类: 高层 API 高层 API 是应用程序编程接口,它们提供特定应用程序或服务的抽象。这些 API 旨在使开发者更容易与应用程序或服务交互,并减少他们需要编写的代码量。高层 API 的例子包括 Google Maps API、Facebook Graph API 和 Amazon Web Services API。 低层 API 低层应用程序编程接口 (API) 允许直接访问计算机系统的硬件和软件组件。它们通常用于创建复杂的软件应用程序,这些应用程序可以访问系统最基本的功能和数据。低层 API 通常用更接近系统硬件和软件组件语言的语言编写,例如 C 和汇编。它们可以提供对计算机系统最基本功能的接口,例如内存、存储、网络和输入/输出。低层 API 通常用于创建需要直接访问系统的专用软件程序和驱动程序。 什么是 Web API?顾名思义,Web API 是一个可以使用 HTTP 协议在 Web 上访问的 API。该框架有助于开发基于 HTTP 的 RESTful 服务。Web API 可以被 Web 服务器和 Web 浏览器使用。Web API 是 Web 开发的一个概念。它不包含有关 Web 服务器或浏览器的信息,仅涉及 Web 应用程序的客户端。Web API 服务用于在各种设备(包括笔记本电脑、手机和其他设备)上提供服务,并且如果应用程序要在分布式系统上使用,则 Web API 是在线应用程序的增强版本。 Web API 包含两个类别:
Web API 的一些示例
API 架构和协议API 协议概述了 API 请求的指南,包括可接受的命令和可接受的数据格式。不同的 API 架构对通信规定了各种限制。 REST REST(表述性状态转移)架构是一种流行的 Web API 架构。要被归类为 REST API,API 必须遵守特定的架构限制或原则,例如: 客户端-服务器架构:后端和数据存储与界面隔离。这使得多个组件可以灵活地独立演进。
![]() JSON-RPC 和 XML-RPC RPC 代表远程过程调用。JSON-RPC 使用 JSON 进行编码,而 XML-RPC 使用 XML 进行编码。这两个协议都不复杂。调用预计会返回一个结果,其中可能包含多个参数。它们具有一些关键特征,需要一种不同于 REST 的架构,包括:
![]() SOAP SOAP(简单对象访问协议)是一种知名的 Web API 协议。它旨在独立、中立(能够与包括 HTTP、SMTP 和 TCP 在内的各种通信协议协同工作)且可扩展(它允许任何编程风格)。SOAP 规范包括以下内容:
![]() API 测试工具API 测试涉及使用软件来评估 API 的构造方式,以确保程序的 LBS、可靠性、安全性和性能不会受到损害。它检查 API 是否正常工作并实现其预期目的。 让我们看看一些最好的 API 测试工具: 1. Apigee Apigee 是一个由 JavaScript 驱动的有趣的跨云 API 测试平台,它允许开发者和测试人员使用多个编辑器访问其功能。该工具适用于包含大量数据的 API,使其成为复杂且强大的数字组织的理想选择。通过检查 API 流量、响应时间和潜在的错误率,它还可以快速发现影响性能的问题。 ![]() 2. SoapUI SoapUI 是为希望创建更复杂的自动化测试和手动调用(如有必要)的高级用户设计的。然而,得益于 SoapUI 的图形测试界面,新手测试人员和开发人员也可以轻松上手。用户可以拖放组件来构建他们的测试,而不是在代码中编写 API 调用。SoapUI 有两个版本:SoapUI Open Source(免费工具)和 ReadyAPI(付费工具)。 ![]() 3. Katalon Katalon 是一个知名的 API、Web 应用程序以及桌面和移动应用程序的测试自动化工具。它提供了多种参数化功能和命令,并支持 SOAP 和 REST 调用。该软件的一个主要优点是,尽管它具有许多有用的功能,但它并不过于复杂,即使对于非技术人员也适用。 ![]() 4. Postman Postman 不需要开发者或测试人员学习新语言,并且它还支持多种格式(如 Swagger 和 RAML)。此外,它还提供了预构建的工作区、集合和工具。与 CURL 不同,Postman 不是基于命令行的应用程序,因此开发者和测试人员可以跳过将文本输入到命令行窗口。 ![]() 5. Tricentis Tricentis 开发了一个全面的软件测试平台,为任何技术栈中的任何应用程序提供持续测试能力。该平台集成了现有的开发和 DevOps 流程,以实现全面的端到端测试。它涵盖了测试的所有方面,包括功能性、非功能性、性能、安全性和探索性测试。它支持手动和自动测试,并提供团队协作工具。此外,它还提供全面的测试分析和报告功能,以跟踪和提高质量。 ![]() 6. Assertible Assertible 是一个基于云的平台,使软件团队能够快速有效地监控、测试和部署应用程序和服务。它帮助团队快速识别和诊断问题,并快速部署更新。Assertible 的设计易于使用,并提供应用程序和服务性能的实时反馈。它还为用户提供对其应用程序和服务的行为的见解,帮助他们识别和解决潜在问题。 ![]() API 的应用
使用 API 的挑战
下一主题# |
我们请求您订阅我们的新闻通讯以获取最新更新。