跳转到帖子

游客您好,欢迎来到黑客世界论坛!您可以在这里进行注册。

赤队小组-代号1949(原CHT攻防小组)在这个瞬息万变的网络时代,我们保持初心,创造最好的社区来共同交流网络技术。您可以在论坛获取黑客攻防技巧与知识,您也可以加入我们的Telegram交流群 共同实时探讨交流。论坛禁止各种广告,请注册用户查看我们的使用与隐私策略,谢谢您的配合。小组成员可以获取论坛隐藏内容!

TheHackerWorld官方

精选回复

发布于

如今,在所有环境中都有在线应用程序更受欢迎。这些应用程序旨在通过具有一系列例程和标准的接口来消费信息。我们将这些类型的应用程序命名为 API

API 首字母缩略词来自应用程序编程接口。它是一组记录在案的标准和规则,以便应用程序 X 可以使用另一个应用程序 Y 功能,而无需知道应用程序 X 实现细节。

 

还令人困惑吗?为了更好地理解,让我们想象一家拥有电子商务网站的公司的一天。开发人员正在根据商店的动态开发解决方案,例如在内部创建、更新、删除产品以及在线向客户展示产品。这些资源可以在服务器端应用程序中开发,就像它是 API 一样。然后,电子商务网站和公司的其他应用程序可以使用此信息。

 

现在我们已经知道 API 是什么以及它可以在哪里使用,我们需要了解一切是如何工作的。下一节将介绍用于应用程序之间通信的协议以及如何表示数据。

API 中的 HTTP、REST 和数据表示形式

HTTP和REST是一回事吗?

Web 上的主要通信协议是 HTTP。它的工作方式类似于我们称为客户端-服务器的模型中的请求-响应协议。在我们的电子商务示例中,用于访问网站的浏览器将是客户端 - 服务器托管API的某些云服务中的计算机或虚拟机。客户端向服务器发送 HTTP 请求,服务器及其资源和内容向客户端返回响应消息。

 
1*H3fF2amVTjEgyTLtsiUFQA.gif Example of how the HTTP protocol works

The HTTP protocol has been used since 1990, and your current version is described in this draft is the HTTP/3. Eight methods are defined that determine actions to be performed when requesting a resource from the server. Of these eight, the four most used are:

  • GET: the method used to read and retrieve data. Request a representation of the specified resource and return that representation.
  • POST: the method used to create a new resource and sends data to the server. The in the header indicates the type of the request body.Content-Type
  • PUT:创建新资源或用最新数据替换目标资源的表示形式。PUTPOST,区别在于它是幂等的。当重复调用一次或多次时,效果是相同的,而获得 POST 可能会产生额外的后果。例如,如果我们使用 POST 创建一个产品,如果 API 中定义的 URL 被调用 20 次,我们将创建 20 个项目,每个项目将具有不同的 ID。在 PUT 方法中,如果执行 API 中定义的 URL 的 20 倍,则结果必须相同:同一项更新 20 次。
  • 删除:删除资源。

基于这些方法,服务器必须处理每个请求并返回相应的响应。响应格式可以是XMLJSON,YAML,文本等。此外,这些响应分为五组:

  • 1XX — 一般信息
  • 2XX — 成功
  • 3XX — 重定向
  • 4XX — 客户端错误
  • 5XX — 服务器错误

但这不是休息吗?不,不是。REST具象状态转移的首字母缩写,是对上述体系结构细节的抽象。它是一种软件架构风格,定义了创建 Web 服务的一系列限制。也就是说,它限制了其组件的交互方式。罗伊·菲尔丁(Roy Fielding)在90年代末和2000年代初的博士论文中介绍并解释了这个术语。

在论文中,Fielding定义了称为HTTP对象模型REST原则。它开始用于设计HTTP 1.1和URI(统一资源标识符)标准。因此,我们可以说,在其语义中,REST使用HTTP方法。此外,还值得记住的是,REST服务必须是无状态的:每个请求都必须是自给自足的。也就是说,每个请求都是一个不同的独立请求。请求中一定无法保存信息的状态

那么,休息意味着什么?如果我们保证实现遵循此 REST 架构,则 API 是 RESTful 的。从概念上讲,在 RESTful 中,数据和功能都被视为客户 URI 可访问的资源。这些 URI 通常是用于标识托管应用程序的服务器的 Web 地址。此外,它表示应用程序本身以及正在请求哪些资源。

这样,在 RESTful 中公开您的 API(或您的 API 服务,如果您愿意)意味着 REST 原则及其限制适用于您。把牌放在桌子上后,让我们弄脏我们的手!除了使用Java(版本11)Spring框架作为API基础之外,我们还将用作工具:

  • Apache Maven(用于依赖关系管理)
  • 邮递员(用于执行一般的API测试和请求)
  • JUnit5(用于单元测试和集成测试)
  • 龙目岛(减少样板代码)
  • Log4j(用于应用程序日志记录)
  • TravisCI(用于持续集成)

本文中生成的所有代码(简化的 API 版本)都可以在此处访问:

创建帐户或登录后发表意见

最近浏览 0

  • 没有会员查看此页面。