Spring APIコントローラー

PHPz
リリース: 2024-02-10 20:36:11
転載
547 人が閲覧しました

php エディター Zimo が今日紹介したいのは、Spring API コントローラーです。コントローラーは、Web アプリケーションを開発する際に非常に重要な部分です。ユーザーからのリクエストを受信し、リクエストの内容に基づいて対応する操作を実行する責任があります。 Spring フレームワークは、開発者がコントローラーをより簡単に作成および管理できるようにする強力な API コントローラーを提供します。 Spring API コントローラーを使用すると、開発者はリクエストを対応する処理メソッドに簡単にマッピングし、リクエスト パラメーターを処理したり、結果を返したりすることができます。この強力なコントローラーにより、Web アプリケーションの開発がより効率的かつ信頼性の高いものになります。

質問内容

このアプリケーションを開発していて、API 階層についてアドバイスが欲しいのですが、ユーザー クラスとユーザーから拡張された学生クラス、および他の 3 つのクラス (学生コード、 Studentconduite と Studentpark)、これら 3 つのクラスは Student から拡張されています。考え方は、管理者が新しい学生を追加しようとすると、新しいユーザー (主キーはユーザー クラスにあります) の追加も要求されます。ユーザーは StudentService クラスに Exists を持っており、ユーザーがまだ存在しない場合はユーザーを保存するメソッドを呼び出し、ユーザーが 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);
    }
ログイン後にコピー

Solution

コントローラーにはビジネス ロジックを含めることはできません。すべてのロジックをカプセル化する適切なサービス クラスに委任するだけです。したがって、サービス クラスを定義し、その中にすべてのロジックを配置し、コントローラーから呼び出します。

以上がSpring APIコントローラーの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:stackoverflow.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!