PHP 편집자 Zimo는 오늘 여러분에게 Spring API 컨트롤러를 소개하려고 합니다. 컨트롤러는 웹 애플리케이션을 개발할 때 매우 중요한 부분입니다. 사용자로부터 요청을 받고 요청 내용에 따라 해당 작업을 수행하는 역할을 담당합니다. Spring 프레임워크는 개발자가 컨트롤러를 보다 편리하게 생성하고 관리하는 데 도움이 되는 강력한 API 컨트롤러를 제공합니다. Spring API 컨트롤러를 사용하면 개발자는 요청을 해당 처리 방법에 쉽게 매핑하고 요청 매개변수를 처리하고 결과를 반환할 수 있습니다. 이 강력한 컨트롤러를 사용하면 웹 애플리케이션 개발을 더욱 효율적이고 안정적으로 수행할 수 있습니다.
저는 이 애플리케이션을 개발 중이며 API 계층 구조에 대한 조언을 듣고 싶습니다. 사용자 클래스와 사용자에서 확장되는 학생 클래스, 그리고 다른 3개의 클래스(studentcode, Studentconduite 및 Studentpark)가 있습니다. 이 3개의 클래스는 확장됩니다. Student의 아이디어는 관리자가 새 학생을 추가하려고 할 때 새 사용자도 추가하라는 메시지를 표시하고(기본 키는 User 클래스에 있음) 사용자가 이미 Studentservice 클래스에 있는지 확인하고 싶다는 것입니다. 사용자가 아직 존재하지 않으면 사용자 저장 메소드를 호출하거나 사용자가 API 수준에 존재하는지 확인하십시오.
//calling the method on StudentService: @Service public class StudentService { @Autowired StudentDao studentDao; UserDao userDao; UserService userService; public Student registerNewStudent(Student student) { User existingUser = userDao.findById(student.getUserName()).orElse(null); if (existingUser ==null) { userService.registerNewUser(student); } return studentDao.save(student); } } //or i check if the user exist in the api like this : public class StudentController { @Autowired private StudentService studentService; private UserDao userDao; private UserController userController; @PostMapping({"/registerNewStudent"}) public Student registerNewStudent(@RequestBody Student student) { User existingUser = userDao.findById(student.getUserName()).orElse(null); if (existingUser ==null) { userController.registerNewUser(student); } return studentService.registerNewStudent(student); } } //and this is registerNewUser methode from Userservice: public User registerNewUser(User user) { Role role = roleDao.findById("User").get(); Set<Role> userRoles = new HashSet<>(); userRoles.add(role); user.setRole(userRoles); user.setUserPassword(getEncodedPassword(user.getUserPassword())); return userDao.save(user); } //and this is registerNewUser methode from UserController: @PostMapping({"/registerNewUser"}) public User registerNewUser(@RequestBody User user) { return userService.registerNewUser(user); }
컨트롤러에는 비즈니스 로직이 포함되어서는 안 되며, 모든 로직을 캡슐화하는 적절한 서비스 클래스에만 위임해야 합니다. 따라서 서비스 클래스를 정의하고 그 안에 모든 로직을 넣고 컨트롤러에서 호출하세요.
위 내용은 스프링 API 컨트롤러의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!