API与软件开发

想象一下,在家中感到饥饿,想要自己烹饪食物。如果选择做面条,可以从橱柜中取出食材,启动炉子,然后自己动手制作。这就像是一个程序使用自己的资源独立完成任务。但是,如果想吃披萨——没有食材,家里的烤箱也不适合制作出美味的脆皮——那么可能需要去披萨店。但在披萨店,不能直接走进厨房开始使用他们的食材制作披萨。他们不希望脏兮兮的手触碰他们的东西!那么会怎么做呢?必须去柜台下单——那里会有菜单列出可以点的披萨和可选的配料或其他选项。这就是一个API。

什么是API

应用程序编程接口(API)是一套规则,规定了两个软件程序应该如何交互。API允许一个软件程序访问另一个软件程序的功能。例如,如果有一个需要从互联网检索数据的软件程序,它可以使用API从服务器请求数据。然后服务器会响应请求的数据,软件程序就可以根据需要使用这些数据。

API用于允许不同的软件程序相互通信并共享数据和功能。它们是现代软件开发的重要组成部分,因为它们允许不同的系统协同工作,从而实现更复杂和强大的软件应用程序的创建。

HTTP API

HTTP API是一种使用HTTP协议发送和接收数据的API。它允许软件程序使用HTTP请求和响应来发送和接收数据。这些请求和响应可以是各种格式,如纯文本、JSON或XML。它们通常用于广泛的应用程序,包括Web应用程序、移动应用程序和微服务。这些API相对于REST API来说成本较低,功能也较少。

REST API

REST API是一种遵循一组称为REST(表述性状态转移)的架构原则的API。REST是一种软件架构风格,它定义了创建Web API的一组约束。

有状态API与无状态API

有状态API是一种维护有关每个客户端请求的信息并使用这些信息处理后续请求的API。这意味着API会在服务器端会话中存储有关每个请求的数据,如请求参数,然后使用这些数据来处理来自同一客户端的后续请求。

另一方面,无状态API不维护有关客户端请求的信息。它独立处理每个请求,不存储有关先前请求的任何数据。这意味着API不维护服务器端会话,也不使用来自先前请求的数据来处理后续请求。

有状态与无状态API的关键区别

以下是有状态和无状态API之间的一些关键区别:

  • 有状态API需要服务器端会话来存储有关客户端请求的数据。
  • 无状态API不需要服务器端会话来存储有关客户端请求的数据。
  • 有状态API有时可能比无状态API慢,因为它们需要存储和检索数据,这需要时间。
  • 无状态API更快,因为它们不需要存储和检索有关请求的数据。
  • 有状态API不易扩展。
  • 无状态API更容易扩展,因为它们不需要维护有关先前请求的数据。
  • 通常认为有状态API比无状态API安全性低。
  • 无状态API通常被认为更安全。

Amazon API Gateway是什么?

Amazon API Gateway是一个AWS服务,用于创建、维护和监控有状态(WebSocket)和无状态(HTTP和REST)API。可以使用这些API来访问任何AWS服务、存储在AWS云中的数据(例如S3桶)以及其他任何Web服务。如果是API开发者,也可以轻松地将API提供给第三方开发者。

AWS API Gateway主要有两类用户:

  1. API开发者,他们创建并部署API以在API Gateway中启用所需的功能。
  2. 应用开发者,他们是API开发者的客户。

Amazon API Gateway架构

这种架构展示了如何构建一致且集成的开发者体验的无服务器应用程序。从最终用户到数据中心,API Gateway处理所有涉及的任务,如接受和处理成千上万的并发调用、流量管理、授权、监控、访问控制等。

Amazon API Gateway特点

它支持有状态和无状态API(例如WebSocket、HTTP和REST)。

强大的认证机制包括AWS身份和访问管理策略以及Lambda授权器。

开发者门户,API开发者可以在这里发布他们的API。

执行和访问日志记录到CloudWatch,并可以选择设置警报。

与其他AWS服务的集成,如AWS Lambda和AWS Kinesis。

与AWS WAF集成用于防止Web漏洞攻击,AWS X-Ray用于理解和强调性能延迟。

现在将创建一个无服务器API。在无服务器API中,可以专注于应用程序,而不是花时间管理服务器。它的工作原理如下:

  1. API由客户端调用
  2. API向Lambda发送请求
  3. Lambda执行Lambda函数并将结果返回给API
  4. API从Lambda接收结果后,响应客户端

Lambda函数用于API后端。Lambda只在需要时运行代码。它还可以自动从每天几个请求扩展到每秒数千个请求。

创建Lambda函数:

  1. 访问
  2. 点击“创建函数”。
  3. 输入“my-function”作为函数名称。
  4. 选择Python 3.9作为运行时。
  5. 对于这个函数,不需要在权限和高级设置选项卡中更改任何内容,因为默认权限足以进行此演示。
  6. 点击“创建函数”。

HTTP API为Lambda函数提供了一个HTTP端点。它的工作原理如下:

  1. 客户端向HTTP API提交查询
  2. API触发Lambda,然后执行Lambda函数
  3. Lambda将结果发送回API
  4. API用收到的响应响应客户端

创建HTTP API的步骤:

  1. 访问
  2. 点击“构建”以创建第一个HTTP API
  3. 点击“添加集成”进行集成
  4. 选择Lambda。
  5. 输入Lambda函数my-function。
  6. 对于API名称,输入my-http-api。
  7. 点击“下一步”。
  8. 查看为创建的路由,然后选择“下一步”。
  9. 查看为创建的阶段,然后选择“下一步”。
  10. 点击“创建”。
  1. 转到
  2. 选择API。
  3. 记下API的调用URL。
  4. 复制API的调用URL,并将其粘贴到Web浏览器中。将调用URL和Lambda函数名称连接起来调用Lambda函数。API Gateway控制台默认使用Lambda函数名称“my-function”创建路由。
  5. 完整的URL应该看起来像https://abcdef123.execute-api.us-east-2.amazonaws.com/my-function。当加载这个URL时,浏览器会向API发送一个GET请求。
  6. 应该在浏览器中看到“Hello from Lambda!”的文本。因此,API响应已得到验证。
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485