Maison > Java > Contrôleur API Spring

Contrôleur API Spring

PHPz
Libérer: 2024-02-10 20:36:11
avant
569 Les gens l'ont consulté

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);
    }
Copier après la connexion

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!

Étiquettes associées:
source:stackoverflow.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal