使用Spring Boot构建RESTful Web服务

本教程的后续内容在此处连接到Firebase并保留数据

在下面的教程中,我们将使用带有Spring Boot的Java构建一个简单的REST Web服务。

如果您想观看视频,请看完整的视频。

什么是Web服务?
Web Service是客户端和服务器之间的标准或通用通信方式。

替代文字

上图显示了Web服务呼叫的图形表示,计算机或电话的客户端基本上是客户端,当您尝试执行手机应用程序的打开facebook应用程序时,它将发送一个Web服务请求(Http Request)以获取显示在您的供稿上的数据。

通常使用两种Web服务

  1. SOAP (简单对象访问协议)。
  2. REST (代表性状态转移)。

SOAP:顾名思义,SOAP是一种访问协议,用于根据将在客户端和服务器之间定义的协议进行请求和接收响应。
使用SOAP有许多注意事项,其中之一是您只能在使用SOAP Web服务时传输和接收XML数据。 因此,宁静的Web服务应运而生。

REST:顾名思义, REST是一种在客户端和服务器之间传输数据的状态,没有附加的协议,可以使用REST Web服务发送任何类型的数据,XML,JSON,TEXT,FILE格式的数据,大多数情况下,您将使用JSON格式。

SPRING BOOT使得从头开始构建REST Web服务变得非常容易,它提供了许多内置的配置,因此您可以快速构建Web服务/微服务,它还提供了内置的tomcat服务器,从而消除了安装服务器的麻烦。像以前一样部署并部署您的JAR / WAR文件,我们将了解如何使用Spring Boot,Java和Maven构建工具构建其余的Web服务。

使用spring工具套件,我们可以创建一个示例spring boot项目。 转到文件->新建->其他项目,然后选择Spring boot-> Spring boot Starter项目 ,它将为您创建一个默认的spring boot项目。

按照STS / eclipse上的步骤操作,您将创建演示应用程序,并且应该能够看到名为DemoApplication.java的Java文件(Demo是项目的名称),该文件看起来像这样。

package com.example.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}

@SpringBootApplication批注将三个批注合并在一起
@Configuration:将类标记为应用程序上下文的Bean定义的源。
@EnableAutoConfiguration:告诉Spring Boot根据类路径设置,其他bean和各种属性设置开始添加bean。 例如,如果spring-webmvc在类路径上,则此注释将应用程序标记为Web应用程序。
@ComponentScan:告诉Spring在我们的案例com.example.demo中在基本包中寻找其他组件,配置和服务,让它找到控制器。

如果您从未使用过Spring MVC,则可能不了解这些注释。 Spring boot starter项目还创建了一个如下所示的POM.XML,它将具有所有必需的依赖关系,除了spring-boot-starter-web依赖关系,我们需要添加它来创建Rest Web服务。

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.2.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>demo</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion> <groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<build>
<plugins>
<plugin> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>

现在,我们将继续创建一个控制器类,该类将具有我们的REST端点,如下所示。

package com.example.demo.controller;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RestController;
import com.example.demo.object.Person;
@RestController
public class UserController {
@GetMapping("/getUserDetails")
public String getUserDetails(@RequestHeader String name) {
return "Requesting Details of User"+name;
}
@PostMapping("/createUser")
public String createNewUser(@RequestBody Person person) {
return "Created new User "+person.getName();
}
@PutMapping("/updateUser")
public String updateUser(@RequestBody Person person) {
return "Updated user "+person.getName();
}
@DeleteMapping("/deleteUser")
public String deleteUser(@RequestBody Person person) {
return "Deleted User "+person.getName();
}
}

HTTP方法:我们共有四种主要的HTTP方法用于Web服务调用,它们是

  1. GET (用于检索现有数据)。
  2. POST (用于创建/插入新数据)。
  3. PUT (用于更新现有数据)。
  4. DELETE (用于删除数据)。

我们已经在上面的UserController类中实现了所有这些方法。
@RestController使spring引导应用程序该类为具有其他终结点的控制器类,以便spring将此类配置为其HTTP路由。
@GetMapping ,具有此批注使在对端点/ getUserDetails进行get调用时调用相应的方法。
类似地,当使用@PostMapping@ PutMapping@DeleteMapping时调用相应的方法/函数。
@RequestHeader捕获在头参数中发送的数据,而@RequestBody捕获在Rest Call主体中发送的数据。

这就是启动服务,在STS或任何可能要使用的IDE上(将DemoApplication.java类作为主要类)使用,设置运行配置的全部,它将使用内置的tomcat引导spring应用程序,并且您的服务将默认情况下在PORT 8080上可用。

如果您在安装和运行过程中需要任何帮助,可以继续观看此视频

本教程的后续内容在此处连接到Firebase并保留数据

From: https://dev.to/nagarajendra/build-a-restful-web-service-using-spring-boot-5d2l

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值