ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

使用 Java 和 Spring Framework 构建 RESTful API — 第 1 部分

2022-11-03 14:39:48  阅读:349  来源: 互联网

标签:javaJDK java 虚拟机 布局 数据 代码 程序 面试 题目


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

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

 

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

 

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

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

HTTP和REST是一回事吗?

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

 
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.1URI统一资源标识符)标准。因此,我们可以说,在其语义中,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 版本)都可以在此处访问:

标签:javaJDK,java,虚拟机,布局,数据,代码,程序,面试,题目
来源:

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有