REST 应用程序遵循 REST 架构方法。我们使用 REST 应用程序来开发和设计网络应用程序。它生成执行数据的 CRUD 操作的 HTTP 请求。通常,它以 JSON 或 XML 格式返回数据。

Spring Boot REST API 示例

在下面的示例中,我们将创建一个 REST 应用程序。在这个应用程序中,我们创建了一个产品列表,并返回相同的列表。它以 JSON 格式返回数据。

让我们按照以下步骤在 REST 应用程序中实现它并理解 REST 方法。

步骤 1: 打开 Spring Initializr https://start.spring.io/

步骤 2: 选择 Spring Boot 版本 2.3.0.M2。

步骤 3: 提供 Group 名称。我们提供了 Group 名称 cn.javatiku。

步骤 4: 提供 Artifact。我们提供了 Artifact spring-boot-rest-example。

步骤 5: 添加 Spring Web 依赖项。

步骤 6: 单击生成按钮。当单击生成按钮时,它将所有与应用程序相关的规范包装到一个 Jar 文件中,并将其下载到本地系统。

步骤 7: 解压缩 jar 文件。

步骤 8: 复制该文件夹并粘贴到 STS 工作区。

步骤 9: 导入项目。

文件 -> 导入 -> 现有的 Maven 项目 -> 下一步 -> 浏览 -> 选择文件夹 spring-boot-rest-example -> 选择文件夹 -> 完成

导入项目需要一些时间。当项目成功导入后,我们可以在 IDE 的 Package Explorer 部分看到它。

步骤 10: 在包 cn.javatiku 中创建一个模型类。我们创建了一个名为 Product 的模型类。在这个类中,进行以下操作:

  • 创建五个变量 id、pname、batchno、price 和 noofproduct。
  • 创建默认构造函数。
  • 通过字段生成构造函数。
  • 通过字段生成 Getters 和 Setters。

完成所有步骤后,模型类如下所示。

Product.java

package cn.javatiku;  
public class Product   
{  
private int id;  
private String pname;  
private String batchno;  
private double price;  
private int noofproduct;  
//default constructor  
public Product()  
{  
      
}  
//constructor using fields  
public Product(int id, String pname, String batchno, double price, int noofproduct)   
{  
super();  
this.id = id;  
this.pname = pname;  
this.batchno = batchno;  
this.price = price;  
this.noofproduct = noofproduct;  
}  
//getters and setters  
public int getId()   
{  
return id;  
}  
public void setId(int id)   
{  
this.id = id;  
}  
public String getPname()   
{  
return pname;  
}  
public void setPname(String pname)   
{  
this.pname = pname;  
}  
public String getBatchno()   
{  
return batchno;  
}  
public void setBatchno(String batchno)   
{  
this.batchno = batchno;  
}  
public double getPrice()   
{  
return price;  
}  
public void setPrice(double price)   
{  
this.price = price;  
}  
public int getNoofproduct()   
{  
return noofproduct;  
}  
public void setNoofproduct(int noofproduct)   
{  
this.noofproduct = noofproduct;  
}  
}  

步骤 11: 在包 cn.javatiku 中创建一个控制器。我们创建了一个名为 ProductController 的控制器。

  • 使用注解 @RestController 注解该类。
  • 我们注入了 IProductService 接口。我们将在下一步中创建它。
  • 通过使用 @GetMapping 注解,创建了映射 /product。
  • 通过映射一个方法 getProduct() 到 /product。该方法返回一个产品列表。

ProductController.java

package cn.javatiku;  
import java.util.List;  
import org.springframework.beans.factory.annotation.Autowired;  
import org.springframework.web.bind.annotation.GetMapping;  
import org.springframework.web.bind.annotation.RestController;  
@RestController  
public class ProductController   
{  
@Autowired  
private IProductService productService;  
//mapping the getProduct() method to /product  
@GetMapping(value = "/product")  
public List<Product> getProduct()   
{  
//finds all the products  
List<Product> products = productService.findAll();  
//returns the product list  
return products;  
}  
}  

步骤 12: 在包 cn.javatiku 中创建一个接口,名称为 IProductService,并定义返回产品列表的 findAll() 方法。

IProductService.java

package cn.javatiku;  
import java.util.List;  
public interface IProductService   
{  
List<Product> findAll();  
}  

步骤 13: 创建一个服务类。我们在包 cn.javatiku 中创建一个名为 ProductService 的服务类。

  • 使用 @Service 注解该类,并实现 IProductService 接口。
  • 在该类中,通过 @Override 注解重写 findAll() 方法。ProductService 类的 findAll() 方法覆盖了 IProductService 接口的 findAll() 方法。
  • 创建一个 ArrayList 对象。
  • 向 ArrayList 中添加产品。
  • 返回产品列表。

ProductService.java

package cn.javatiku;  
import java.util.ArrayList;  
import java.util.List;  
import org.springframework.stereotype.Service;  
@Service  
public class ProductService implements IProductService    
{  
@Override  
public List<Product> findAll()  
{  
//creating an object of ArrayList  
ArrayList<Product> products = new ArrayList<Product>();  
//adding products to the List  
products.add(new Product(100, "Mobile", "CLK98123", 9000.00, 6));  
products.add(new Product(101, "Smart TV", "LGST09167", 60000.00, 3));  
products.add(new Product(102, "Washing Machine", "38753BK9", 9000.00, 7));  
products.add(new Product(103, "Laptop", "LHP29OCP", 24000.00, 1));  
products.add(new Product(104, "Air Conditioner", "ACLG66721", 30000.00, 5));  
products.add(new Product(105, "Refrigerator ", "12WP9087", 10000.00, 4));  
//returns a list of product  
return products;  
}  
}  

步骤 14: 在 static 文件夹(src/main/resources/static)中创建一个 HTML 文件。我们创建了一个名为 index 的 HTML 文件。在该文件中,我们创建了一个名为 "Get all Products" 的链接。

index.html

<!DOCTYPE html>  
<html>  
<head>  
<title>Home page</title>  
<meta charset="UTF-8">  
<meta name="viewport" content="width=device-width, initial-scale=1.0">  
</head>  
<body>  
<p>  
<a href="product">Get all Products</a>  
</p>  
</body>  
</html>  

现在,我们已经创建了所有的文件和文件夹。创建所有文件后,项目目录如下所示:

spring-boot-rest-example.png

步骤 15: 打开 SpringBootRestExampleApplication.java 文件,并将其作为 Java 应用程序运行。默认情况下,它在端口 8080 上运行。

SpringBootRestExampleApplication.java

package cn.javatiku;  
import org.springframework.boot.SpringApplication;  
import org.springframework.boot.autoconfigure.SpringBootApplication;  
@SpringBootApplication  
public class SpringBootRestExampleApplication   
{  
public static void main(String[] args)   
{  
SpringApplication.run(SpringBootRestExampleApplication.class, args);  
}  
}  

当应用程序成功运行时,它会显示如下的消息:

spring-boot-rest-example2.png

步骤 16: 打开浏览器,调用 URL http://localhost:8080/index.html。它会显示 "Get all Products" 的链接,如下图所示。
spring-boot-rest-example3.png

点击 "Get all Products" 链接。它会返回一个以 JSON 格式表示的产品列表,并且 URL 会变为 http://localhost:8080/product
spring-boot-rest-example4.png

标签: spring, Spring教程, Spring语言学习, Spring框架, Spring框架教程, Spring框架高级教程, spring boot, spring boot入门教程, spring boot学习教程, spring boot下载, spring boot框架入门, spring boot面试题, spring boot笔试题, spring boot学习指南, spring boot技术