Rumah  >  Artikel  >  Pengawal API musim bunga

Pengawal API musim bunga

PHPz
PHPzke hadapan
2024-02-10 20:36:11498semak imbas

Editor PHP Zimo ingin memperkenalkan kepada anda hari ini pengawal API Spring. Pengawal adalah bahagian yang sangat penting apabila membangunkan aplikasi web. Ia bertanggungjawab untuk menerima permintaan daripada pengguna dan melaksanakan operasi yang sepadan berdasarkan kandungan permintaan. Rangka kerja Spring menyediakan pengawal API berkuasa yang boleh membantu pembangun mencipta dan mengurus pengawal dengan lebih mudah. Dengan menggunakan pengawal API Spring, pembangun boleh dengan mudah memetakan permintaan kepada kaedah pemprosesan yang sepadan dan mengendalikan parameter permintaan, hasil pengembalian, dsb. Pengawal berkuasa ini menjadikan pembangunan aplikasi web lebih cekap dan boleh dipercayai.

Kandungan soalan

Saya sedang membangunkan aplikasi ini dan saya ingin nasihat tentang hierarki api, saya mempunyai kelas pengguna dan kelas pelajar yang dilanjutkan daripada pengguna, dan 3 kelas lain (studentcode, studentconduite dan studentpark) 3 kelas ini melanjutkan daripada Pelajar, ideanya ialah apabila pentadbir cuba menambah pelajar baharu, ia juga akan meminta untuk menambah pengguna baharu (kunci utama adalah dalam kelas Pengguna) dan saya ingin menyemak sama ada pengguna itu sudah wujud dalam kelas perkhidmatan pelajar dan panggil kaedah pengguna simpan jika pengguna belum wujud lagi, atau untuk menyemak sama ada pengguna wujud pada tahap 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);
    }

Penyelesaian

Pengawal seharusnya tidak mengandungi sebarang logik perniagaan, mereka hanya mewakilkan kepada kelas perkhidmatan yang sesuai yang merangkumi semua logik. Jadi tentukan kelas perkhidmatan dan letakkan semua logik di dalamnya dan panggilnya dari pengawal.

Atas ialah kandungan terperinci Pengawal API musim bunga. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:stackoverflow.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam