1. 项目结构假设你使用的是Maven构建工具,典型的Spring Boot项目结构如下:
springboot-reset-api/ ├── src/ │ ├── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── example/ │ │ │ └── resetapi/ │ │ │ ├── ResetApiApplication.java │ │ │ ├── controller/ │ │ │ │ └── ResetController.java │ │ │ ├── service/ │ │ │ │ └── UserService.java │ │ │ └── model/ │ │ │ └── User.java │ │ └── resources/ │ │ └── application.properties ├── mvnw ├── mvnw.cmd ├── pom.xml └── README.md2. 依赖配置在pom.xml中,你需要添加Spring Boot的依赖:
package com.example.resetapi; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class ResetApiApplication { public static void main(String[] args) { SpringApplication.run(ResetApiApplication.class, args); } }4. 用户模型User.java是一个简单的用户模型:
package com.example.resetapi.model; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; @Entity public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String email; private String password; // Getters and Setters }5. 用户服务UserService.java处理业务逻辑:
package com.example.resetapi.service; import com.example.resetapi.model.User; import com.example.resetapi.repository.UserRepository; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.Optional; @Service public class UserService { @Autowired private UserRepository userRepository; public Optional
package com.example.resetapi.repository; import com.example.resetapi.model.User; import org.springframework.data.jpa.repository.JpaRepository; import java.util.Optional; public interface UserRepository extends JpaRepository
package com.example.resetapi.controller; import com.example.resetapi.model.User; import com.example.resetapi.service.UserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; import java.util.Optional; @RestController @RequestMapping("/reset") public class ResetController { @Autowired private UserService userService; @PostMapping("/password") public ResponseEntity
spring.datasource.url=jdbc:h2:mem:testdb spring.datasource.driverClassName=org.h2.Driver spring.datasource.username=sa spring.datasource.password=password spring.jpa.database-platform=org.hibernate.dialect.H2Dialect spring.h2.console.enabled=true8. 运行应用程序运行ResetApiApplication.java,然后你可以通过POST请求来测试API,例如使用Postman或curl:
curl -X POST http://localhost:8080/reset/password -H "Content-Type: application/json" -d '{"email": "user@example.com", "newPassword": "newpassword123"}'