Maison >Java >Contrôleur API Spring

Contrôleur API Spring

PHPz
PHPzavant
2024-02-10 20:36:11566parcourir

L'éditeur PHP Zimo souhaite vous présenter aujourd'hui le contrôleur Spring API. Les contrôleurs jouent un rôle très important lors du développement d’applications Web. Il est chargé de recevoir les demandes des utilisateurs et d'effectuer les opérations correspondantes en fonction du contenu de la demande. Le framework Spring fournit de puissants contrôleurs API qui peuvent aider les développeurs à créer et à gérer des contrôleurs plus facilement. En utilisant les contrôleurs Spring API, les développeurs peuvent facilement mapper les requêtes aux méthodes de traitement correspondantes et gérer les paramètres de requête, renvoyer les résultats, etc. Ce contrôleur puissant rend le développement d'applications Web plus efficace et plus fiable.

Contenu de la question

Je développe cette application et j'aimerais avoir des conseils sur la hiérarchie des API, j'ai une classe utilisateur et une classe étudiant s'étendant de user, et 3 autres classes (studentcode, studentconduite et studentpark) Ces 3 classes s'étendent de Student, l'idée est que lorsque l'administrateur essaie d'ajouter un nouvel étudiant, il demandera également d'ajouter un nouvel utilisateur (la clé primaire est dans la classe User) et je veux vérifier si l'utilisateur existe déjà dans la classe studentservice et appelez la méthode save user si l'utilisateur n'existe pas encore, ou pour vérifier si l'utilisateur existe au niveau de l'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);
    }

Workaround

Les contrôleurs ne doivent contenir aucune logique métier, ils délèguent uniquement aux classes de service appropriées qui encapsulent toute la logique. Définissez donc une classe de service, mettez-y toute la logique et appelez-la depuis le contrôleur.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer