Auf Thema antworten

So ich habe jetzt nochmal alles "durchstudiert", jetzt habe ich die Methoden "put", "delete" und "get" erstellt bzw. überarbeitet.

Jetzt funktioniert es wie es soll.

Alle Methoden funktionieren. Die Frage ist ob es vom Code sauber ist.

Hier erstmal der Controller:

[CODE=java]@Controller

@RequestMapping("/api") //der Pfad nach der url:port also url:port/api    -- name kann beliebeig sein

public class ControllerUser{

    @Autowired

    private UserRepo userRepository;

   

    @PostMapping("/add")

    public @ResponseBody String addNewUser (@RequestParam String name, @RequestParam String ort) {

        User user = new User();

        user.setName(name);

        user.setOrt(ort);

        userRepository.save(user);

        return "Saved";

    }

   

    @GetMapping("/all")

    public @ResponseBody Iterable<User> getAllUsers () {

        return userRepository.findAll();

    }

   


    //hier wird explizit die ID als Parameter angegeben

    @GetMapping("/user")

     public @ResponseBody Optional<User> nameSearch(@RequestParam Long id) {

            return userRepository.findById(id);

      }

   

    //die ID wird an die URL gehängt

    @GetMapping("/user/{id}")

     public @ResponseBody Optional<User> idSearch(@PathVariable Long id) {

            return userRepository.findById(id);

    }

   

    //ein Eintrag löschen mit dem Parameter ID

    @DeleteMapping("/del")

     public @ResponseBody String loeschen(@RequestParam Long id) {

        userRepository.deleteById(id);

        return "gelöscht";    

    }

   

    //einen Eintrag verändern

    @PutMapping("/put")

     public @ResponseBody String put(@RequestParam Long id, @RequestParam String ort) {

        User user = new User();

        //gesetzt wird die übergebene ID und den Ort

        user.setID(id);

        user.setOrt(ort);

        //hier wird der Name zurückgegeben

        String name = userRepository.findById(id).get().getName();

        //den Namen setzen

        user.setName(name);

        //und speichern

        userRepository.save(user);

        return "erfolgreich";

    }

   

    //hier wird explizit nach dem Namen gesuch und wiedergegeben

    @GetMapping("/einzelausgabe")

     public @ResponseBody List<User> einzel(@RequestParam String name) {

            return userRepository.findByName(name);

      }    

}[/CODE]


Was mir noch für Fragen aufwerfen ist, das es viele Tutorial's gibt und alle unterschiedliche Controller mit verschiedenen Methoden  haben wie z.B. ResponseEntity.


Mir stellt sich die Frage was braucht man wann und was wirklich?

Oder kann man mit meinen Controller "leben" der alles beinhaltet?



Oben