Spring Boot 是一个流行的 Java 框架,用于快速构建微服务和 Web 应用程序。REST API 是 Spring Boot 应用程序的核心组件之一。以下是一些 Spring Boot REST API 的示例教程,帮助您入门和提升。

起步

  1. 环境搭建:确保您的系统中已安装 Java 和 Maven。
  2. 创建项目:使用 Spring Initializr(https://start.spring.io/)创建一个 Spring Boot 项目。
  3. 添加依赖:在 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 教程


Spring_Boot_logo