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?