The continuation of this tutorial is here connect to firebase and persist data
在下面的教程中,我们将使用带有Spring Boot的Java构建一个简单的REST Web服务。
如果您想观看视频,请看完整的视频。
什么是Web服务? Web服务是客户端和服务器之间的标准或通用通信方式。
上图显示了Web服务呼叫的图形表示,计算机或电话的客户端基本上是客户端,当您尝试执行手机应用程序的打开Facebook应用程序时,它将发送Web服务请求(Http Request)以获取 显示在您的供稿上的数据。
通常使用两种Web服务
- 肥皂(简单对象访问协议)。休息(代表性状态转移)。
肥皂:顾名思义,SOAP是一种访问协议,它基于将在客户端和服务器之间定义的协议来发出请求和接收响应。 使用SOAP有很多注意事项,其中之一是您只能在使用SOAP Web服务时传输和接收XML数据。 因此,宁静的Web服务应运而生。
休息:顾名思义,它是一种在客户端和服务器之间传输数据的状态,没有附加的固定协议,在大多数情况下,您可以使用REST Web服务发送任何类型的数据,XML,JSON,TEXT,FILE格式的数据 ,您将使用JSON格式。
弹簧靴从头开始构建REST Web服务变得非常容易,它提供了许多内置的配置,以便您可以快速构建Web服务/微服务,还提供了内置的tomcat服务器,从而消除了在服务器中安装服务器的麻烦。 像以前一样部署您的JAR / WAR文件,我们将了解如何使用Spring Boot,Java和Maven构建工具构建其余的Web服务。
使用spring工具套件,我们可以创建一个示例spring boot项目。 去File -> New -> Other Project然后选择Spring boot-> Spring boot Starter project它将为您创建一个默认的spring boot项目。
按照STS / eclipse上的步骤操作,您将创建演示应用程序,并且应该能够看到名为DemoApplication.java的Java文件(Demo是项目的名称),该文件看起来像这样。
包com.example.demo; 导入org.springframework.boot.SpringApplication; 导入org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication 公共类DemoApplication { 公共静态void main(String [] args){ SpringApplication.run(DemoApplication.class,args); } }
@SpringBootApplication注释将三个注释合并在一起 @组态:将类标记为应用程序上下文的Bean定义的源。 @EnableAutoConfiguration:告诉Spring Boot根据类路径设置,其他bean和各种属性设置开始添加bean。 例如,如果spring-webmvc在类路径上,则此注释将应用程序标记为Web应用程序。 @ComponentScan:告诉Spring在我们的案例com.example.demo中寻找基本软件包中的其他组件,配置和服务,让它找到控制器。
如果您从未使用过Spring MVC,则可能不知道这些注释。 Spring Boot Starter项目还创建了一个如下所示的POM.XML,它将具有所有必需的依赖关系,除了弹簧启动启动器网络在创建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端点,如下所示。
包com.example.demo.controller; 导入org.springframework.web.bind.annotation.DeleteMapping; 导入org.springframework.web.bind.annotation.GetMapping; 导入org.springframework.web.bind.annotation.PostMapping; 导入org.springframework.web.bind.annotation.PutMapping; 导入org.springframework.web.bind.annotation.RequestBody; 导入org.springframework.web.bind.annotation.RequestHeader; 导入org.springframework.web.bind.annotation.RestController; 导入com.example.demo.object.Person; @RestController 公共类UserController { @GetMapping(“ / getUserDetails”) 公共字符串getUserDetails(@RequestHeader字符串名称){ 返回“请求用户详细信息” +名称; } @PostMapping(“ / createUser”) public String createNewUser(@RequestBody Person person){ 返回“创建新用户” + person.getName(); } @PutMapping(“ / updateUser”) public String updateUser(@RequestBody Person person){ 返回“更新的用户” + person.getName(); } @DeleteMapping(“ / deleteUser”) public String deleteUser(@RequestBody Person person){ 返回“已删除的用户” + person.getName(); } }
HTTP方法:我们共有四种主要的HTTP方法用于Web服务调用,它们是
- 得到(用于检索现有数据)。开机自检(用于创建/插入新数据)。放(用于更新现有数据)。删除(用于删除数据)。
我们已经在上面的UserController类中实现了所有这些方法。 @RestController让spring引导应用程序将此类为具有其他终结点的控制器类,以便spring将此类配置为其HTTP路由。 @GetMapping,具有此批注的对象将在对端点/ getUserDetails进行get调用时调用相应的方法。 Similarly @PostMapping,@PutMapping,@DeleteMapping使用那些方法时调用相应的方法/函数。 @RequestHeader捕获在头参数中发送的数据,并@RequestBody捕获在“剩余呼叫”正文中发送的数据。
这就是启动服务,在STS或任何可能要使用的IDE上运行(指向DemoApplication.java类作为主要类的)IDE所需的全部,它将使用内置的tomcat引导spring应用程序,并且您的服务将 可在PORT上使用8080默认情况下。
如果您需要任何帮助来启动和运行该视频,可以按照此视频进行操作。
The continuation of this tutorial is here connect to firebase and persist data
from: https://dev.to//nagarajendra/build-a-restful-web-service-using-spring-boot-5d2l