>  기사  >  스프링 API 컨트롤러

스프링 API 컨트롤러

PHPz
PHPz앞으로
2024-02-10 20:36:11496검색

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 stackoverflow.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제