Spring Boot 是一个流行的 Java 框架,用于快速构建微服务和 Web 应用程序。REST API 是 Spring Boot 应用程序的核心组件之一。以下是一些 Spring Boot REST API 的示例教程,帮助您入门和提升。
起步
- 环境搭建:确保您的系统中已安装 Java 和 Maven。
- 创建项目:使用 Spring Initializr(https://start.spring.io/)创建一个 Spring Boot 项目。
- 添加依赖:在
pom.xml
中添加 Spring Web 和 Spring Data JPA 依赖。
示例教程
1. 创建 RESTful 控制器
@RestController
@RequestMapping("/api/products")
public class ProductController {
@Autowired
private ProductService productService;
@GetMapping
public List<Product> getAllProducts() {
return productService.findAll();
}
@GetMapping("/{id}")
public Product getProductById(@PathVariable Long id) {
return productService.findById(id);
}
@PostMapping
public Product createProduct(@RequestBody Product product) {
return productService.save(product);
}
@PutMapping("/{id}")
public Product updateProduct(@PathVariable Long id, @RequestBody Product product) {
return productService.update(id, product);
}
@DeleteMapping("/{id}")
public void deleteProduct(@PathVariable Long id) {
productService.delete(id);
}
}
2. 数据库操作
使用 Spring Data JPA 进行数据库操作。
@Entity
public class Product {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
private Double price;
// Getters and Setters
}
@Service
public class ProductService implements ProductRepository {
@Autowired
private ProductRepository productRepository;
@Override
public List<Product> findAll() {
return productRepository.findAll();
}
@Override
public Product findById(Long id) {
return productRepository.findById(id).orElse(null);
}
@Override
public Product save(Product product) {
return productRepository.save(product);
}
@Override
public Product update(Long id, Product productDetails) {
Product product = productRepository.findById(id).orElseThrow(() -> new ResourceNotFoundException("Product not found with id: " + id));
product.setName(productDetails.getName());
product.setPrice(productDetails.getPrice());
return productRepository.save(product);
}
@Override
public void delete(Long id) {
Product product = productRepository.findById(id).orElseThrow(() -> new ResourceNotFoundException("Product not found with id: " + id));
productRepository.delete(product);
}
}
3. 跨域资源共享 (CORS)
为了使 API 可以被不同的域名访问,需要配置 CORS。
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/api/**")
.allowedOrigins("*")
.allowedMethods("GET", "POST", "PUT", "DELETE")
.allowedHeaders("*");
}
}
扩展阅读
想要了解更多关于 Spring Boot 和 REST API 的知识,请访问我们的 Spring Boot 教程。