想象一下,在家中感到饥饿,想要自己烹饪食物。如果选择做面条,可以从橱柜中取出食材,启动炉子,然后自己动手制作。这就像是一个程序使用自己的资源独立完成任务。但是,如果想吃披萨——没有食材,家里的烤箱也不适合制作出美味的脆皮——那么可能需要去披萨店。但在披萨店,不能直接走进厨房开始使用他们的食材制作披萨。他们不希望脏兮兮的手触碰他们的东西!那么会怎么做呢?必须去柜台下单——那里会有菜单列出可以点的披萨和可选的配料或其他选项。这就是一个API。
应用程序编程接口(API)是一套规则,规定了两个软件程序应该如何交互。API允许一个软件程序访问另一个软件程序的功能。例如,如果有一个需要从互联网检索数据的软件程序,它可以使用API从服务器请求数据。然后服务器会响应请求的数据,软件程序就可以根据需要使用这些数据。
API用于允许不同的软件程序相互通信并共享数据和功能。它们是现代软件开发的重要组成部分,因为它们允许不同的系统协同工作,从而实现更复杂和强大的软件应用程序的创建。
HTTP API是一种使用HTTP协议发送和接收数据的API。它允许软件程序使用HTTP请求和响应来发送和接收数据。这些请求和响应可以是各种格式,如纯文本、JSON或XML。它们通常用于广泛的应用程序,包括Web应用程序、移动应用程序和微服务。这些API相对于REST API来说成本较低,功能也较少。
REST API是一种遵循一组称为REST(表述性状态转移)的架构原则的API。REST是一种软件架构风格,它定义了创建Web API的一组约束。
有状态API是一种维护有关每个客户端请求的信息并使用这些信息处理后续请求的API。这意味着API会在服务器端会话中存储有关每个请求的数据,如请求参数,然后使用这些数据来处理来自同一客户端的后续请求。
另一方面,无状态API不维护有关客户端请求的信息。它独立处理每个请求,不存储有关先前请求的任何数据。这意味着API不维护服务器端会话,也不使用来自先前请求的数据来处理后续请求。
以下是有状态和无状态API之间的一些关键区别:
Amazon API Gateway是一个AWS服务,用于创建、维护和监控有状态(WebSocket)和无状态(HTTP和REST)API。可以使用这些API来访问任何AWS服务、存储在AWS云中的数据(例如S3桶)以及其他任何Web服务。如果是API开发者,也可以轻松地将API提供给第三方开发者。
AWS API Gateway主要有两类用户:
这种架构展示了如何构建一致且集成的开发者体验的无服务器应用程序。从最终用户到数据中心,API Gateway处理所有涉及的任务,如接受和处理成千上万的并发调用、流量管理、授权、监控、访问控制等。
它支持有状态和无状态API(例如WebSocket、HTTP和REST)。
强大的认证机制包括AWS身份和访问管理策略以及Lambda授权器。
开发者门户,API开发者可以在这里发布他们的API。
执行和访问日志记录到CloudWatch,并可以选择设置警报。
与其他AWS服务的集成,如AWS Lambda和AWS Kinesis。
与AWS WAF集成用于防止Web漏洞攻击,AWS X-Ray用于理解和强调性能延迟。
现在将创建一个无服务器API。在无服务器API中,可以专注于应用程序,而不是花时间管理服务器。它的工作原理如下:
Lambda函数用于API后端。Lambda只在需要时运行代码。它还可以自动从每天几个请求扩展到每秒数千个请求。
创建Lambda函数:
HTTP API为Lambda函数提供了一个HTTP端点。它的工作原理如下:
创建HTTP API的步骤: