Die Aufgabe:
Die registrierten Anwender und ihre Spielhistorie soll zentral in einer relationalen Datenbank gespeichert werden. Es soll dazu ein Framework für das objekt-relationale Mapping eingesetzt werden. Es soll eine API für den Datenaustausch mit dem Client angeboten werden, über die Daten im JSON- oder XML-Format ausgetauscht werden. Die API soll JSON Web Tokens (JWT) zur Authentifizierung von Anwendern unterstützen.
Ich habe die Rest Api schon aufgebaut, wo man mit Hilfe von Postman Objekte in die Datenbank einfügen/anzeigen/entfernen kann.
Wie kann ich aber auf einzelne Objekte zugreifen und diese dann zum Beispiel für ein Login benutzen (JavaFX). (Ohne Postman)
Ich habe leider keine Ahnung wie ich da vorgehen sollte
Ich hoffe da kann mir jemand helfen.
Danke im vorraus.
[CODE lang="java" title="UserController"]package com.battelquiz.battelquizspringboot.controller;
import java.util.List;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import org.hibernate.query.Query;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.battelquiz.battelquizspringboot.entity.User;
import com.battelquiz.battelquizspringboot.exception.ResourceNotFoundException;
import com.battelquiz.battelquizspringboot.repository.UserRepository;
@RestController
@RequestMapping("/api/users")
public class UserController {
@Autowired
private UserRepository userRepository;
//get all users
@GetMapping
public List<User> getAllUsers(){
return this.userRepository.findAll();
}
// get user by id
@GetMapping( "/{id}" )
public User getUSerById(@PathVariable (value = "id") long userId) {
return this.userRepository.findById(userId)
.orElseThrow(() -> new ResourceNotFoundException("User mit der ID: " + userId + " wurde nicht gefunden"));
}
// create User
@PostMapping
public User createUser(@RequestBody User user) {
return this.userRepository.save(user);
}
// update user
@PutMapping("/{id}")
public User updateUser(@RequestBody User user, @PathVariable ("id") long userId) {
User existingUser = this.userRepository.findById(userId)
.orElseThrow(() -> new ResourceNotFoundException("User mit der ID: " + userId + " wurde nicht gefunden"));
existingUser.setFirstName(user.getFirstName());
existingUser.setLastName(user.getLastName());
existingUser.setEmail(user.getEmail());
return this.userRepository.save(existingUser);
}
//delete user by ID
@DeleteMapping("/{id}")
public ResponseEntity<User> deleteUser(@PathVariable ("id") long userId){
User existingUser = this.userRepository.findById(userId)
.orElseThrow(() -> new ResourceNotFoundException("User mit der ID: " + userId + " wurde nicht gefunden"));
this.userRepository.delete(existingUser);
return ResponseEntity.ok().build();
}
}
}
[/CODE]
[CODE lang="java" title="LoginController"]package com.battelquiz.battelquizspringboot.controller;
import com.battelquiz.battelquizspringboot.entity.User;
import javafx.application.Application;
import javafx.concurrent.WorkerStateEvent;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.scene.Node;
import javafx.scene.control.Label;
import javafx.scene.control.TextField;
import javafx.stage.Stage;
import task.PostLoginTask;
import view.Login;
import view.Start;
public class LoginController {
@FXML
private TextField tf_username;
@FXML
private TextField tf_passwort;
@FXML
private Label loginFailure;
@FXML
void onLoginClick(ActionEvent event) {
}
@FXML
void onZurueckClick(ActionEvent event) throws Exception {
System.out.println("zurück");
}
}
[/CODE]
Die registrierten Anwender und ihre Spielhistorie soll zentral in einer relationalen Datenbank gespeichert werden. Es soll dazu ein Framework für das objekt-relationale Mapping eingesetzt werden. Es soll eine API für den Datenaustausch mit dem Client angeboten werden, über die Daten im JSON- oder XML-Format ausgetauscht werden. Die API soll JSON Web Tokens (JWT) zur Authentifizierung von Anwendern unterstützen.
Ich habe die Rest Api schon aufgebaut, wo man mit Hilfe von Postman Objekte in die Datenbank einfügen/anzeigen/entfernen kann.
Wie kann ich aber auf einzelne Objekte zugreifen und diese dann zum Beispiel für ein Login benutzen (JavaFX). (Ohne Postman)
Ich habe leider keine Ahnung wie ich da vorgehen sollte
Ich hoffe da kann mir jemand helfen.
Danke im vorraus.
[CODE lang="java" title="UserController"]package com.battelquiz.battelquizspringboot.controller;
import java.util.List;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import org.hibernate.query.Query;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.battelquiz.battelquizspringboot.entity.User;
import com.battelquiz.battelquizspringboot.exception.ResourceNotFoundException;
import com.battelquiz.battelquizspringboot.repository.UserRepository;
@RestController
@RequestMapping("/api/users")
public class UserController {
@Autowired
private UserRepository userRepository;
//get all users
@GetMapping
public List<User> getAllUsers(){
return this.userRepository.findAll();
}
// get user by id
@GetMapping( "/{id}" )
public User getUSerById(@PathVariable (value = "id") long userId) {
return this.userRepository.findById(userId)
.orElseThrow(() -> new ResourceNotFoundException("User mit der ID: " + userId + " wurde nicht gefunden"));
}
// create User
@PostMapping
public User createUser(@RequestBody User user) {
return this.userRepository.save(user);
}
// update user
@PutMapping("/{id}")
public User updateUser(@RequestBody User user, @PathVariable ("id") long userId) {
User existingUser = this.userRepository.findById(userId)
.orElseThrow(() -> new ResourceNotFoundException("User mit der ID: " + userId + " wurde nicht gefunden"));
existingUser.setFirstName(user.getFirstName());
existingUser.setLastName(user.getLastName());
existingUser.setEmail(user.getEmail());
return this.userRepository.save(existingUser);
}
//delete user by ID
@DeleteMapping("/{id}")
public ResponseEntity<User> deleteUser(@PathVariable ("id") long userId){
User existingUser = this.userRepository.findById(userId)
.orElseThrow(() -> new ResourceNotFoundException("User mit der ID: " + userId + " wurde nicht gefunden"));
this.userRepository.delete(existingUser);
return ResponseEntity.ok().build();
}
}
}
[/CODE]
[CODE lang="java" title="LoginController"]package com.battelquiz.battelquizspringboot.controller;
import com.battelquiz.battelquizspringboot.entity.User;
import javafx.application.Application;
import javafx.concurrent.WorkerStateEvent;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.scene.Node;
import javafx.scene.control.Label;
import javafx.scene.control.TextField;
import javafx.stage.Stage;
import task.PostLoginTask;
import view.Login;
import view.Start;
public class LoginController {
@FXML
private TextField tf_username;
@FXML
private TextField tf_passwort;
@FXML
private Label loginFailure;
@FXML
void onLoginClick(ActionEvent event) {
}
@FXML
void onZurueckClick(ActionEvent event) throws Exception {
System.out.println("zurück");
}
}
[/CODE]