Home  >  Article  >  Spring API controller

Spring API controller

PHPz
PHPzforward
2024-02-10 20:36:11498browse

What php editor Zimo wants to introduce to you today is the Spring API controller. Controllers are a very important part when developing web applications. It is responsible for receiving requests from users and performing corresponding operations based on the content of the request. The Spring framework provides powerful API controllers that can help developers create and manage controllers more conveniently. By using Spring API controllers, developers can easily map requests to corresponding processing methods and handle request parameters, return results, etc. This powerful controller makes developing web applications more efficient and reliable.

Question content

I am developing this application and I would like some advice on the api hierarchy, I have a user class and a student class extending from user, and 3 others Classes (studentcode, studentconduite and studentpark) these 3 classes extend from student, the idea is that when the admin tries to add a new student, it will also ask to add a new user (the primary key is in the user class) and I want to check if the user has Exists in the studentservice class and calls a method that saves the user if the user does not exist yet, or checks if the user exists at the api level.

//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);
    }

Solution

Controllers should not contain any business logic, they only delegate to appropriate service classes that encapsulate all logic. So define a service class and put all logic in it and call it from controller.

The above is the detailed content of Spring API controller. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:stackoverflow.com. If there is any infringement, please contact admin@php.cn delete