@PutMapping("/create") public Book create(Map<String, Object> map) throws Exception { System.out.println("Έλεγχος αν το βιβλίο υπάρχει " + map); Book book = new ObjectMapper().convertValue(map, Book.class); Book b = repo.findByTitle(book.getTitle()); if (b != null) { throw new Exception("Το βιβλίο ήδη υπάρχει"); } book.setId(UUID.randomUUID().toString()); repo.save(book); log.debug("Το βιβλίο {} από {} δημιουργήθηκε με id {}", book.getTitle(), book.getAuthor(), book.getId()); return book; } public BookStoreController(BooksRepository repo, Boolean bool, List<String> keys) { this.repo = repo; if (Boolean.TRUE.equals(bool)) { // έλεγχος πρώτου κλειδιού if(keys != null && !keys.isEmpty()){ String firstKey = keys.get(0); if (firstKey == "public") { for (String key : keys){ // ... κάποια λογική log.debug("Χρησιμοποιώντας το κλειδί {}", key); }; } } } }
Java
Πείτε μας για την εργασιακή σας εμπειρία: εταιρείες, έργα, τεχνολογίες
@PutMapping("/create") public Book create(Map<String, Object> map) throws Exception { System.out.println("Έλεγχος αν το βιβλίο υπάρχει " + map); Book book = new ObjectMapper().convertValue(map, Book.class); Book b = repo.findByTitle(book.getTitle()); if (b != null) { throw new Exception("Το βιβλίο ήδη υπάρχει"); } book.setId(UUID.randomUUID().toString()); repo.save(book); log.debug("Βιβλίο {} από {} δημιουργήθηκε με id {}", book.getTitle(), book.getAuthor(), book.getId()); return book; } @GetMapping("/get") public Book get(@QueryParam("id") String id) { log.debug("Λήψη βιβλίου " + id); return repo.findAll().stream() .filter(b -> b.getId().equals(id)) .findFirst().get(); }
if (Boolean.TRUE.equals(bool)) { // έλεγχος πρώτου κλειδιού String firstKey = keys.iterator().next(); if (firstKey == "public") { keys.stream().forEach(key -> { // ... κάποια λογική log.warn("Χρησιμοποιώντας το κλειδί " + key); }); } } public BookStoreController(BooksRepository repo, Boolean bool, List<String> keys) { this.repo = repo; if (Boolean.TRUE.equals(bool)) { // έλεγχος πρώτου κλειδιού String firstKey = (String) ((ArrayList) keys).get(0); if (firstKey == "public") { keys.stream().forEach(key -> { // ... κάποια λογική log.warn("Χρησιμοποιώντας το κλειδί " + key); }); } } }
import jakarta.persistence.Id; import jakarta.persistence.Table; import jakarta.ws.rs.QueryParam; import lombok.Data; import lombok.extern.log4j.Log4j2; @Log4j2 @Service @RestController("/store/book") public class BookStoreController { private final BooksRepository repo; public BookStoreController(BooksRepository repo, Boolean bool, Collection keys) { this.repo = repo; if (bool) { // έλεγχος πρώτου κλειδιού String firstKey = (String) ((ArrayList) keys).get(0); if (firstKey == "public") { keys.stream().forEach(key -> { // ... κάποια λογική log.warn("Χρησιμοποιώντας κλειδί " + key); }); } } } @PutMapping("/create") public Book create(Map<String, Object> map) throws Exception { System.out.println("Έλεγχος αν το βιβλίο υπάρχει " + map); }
Πείτε περισσότερα για την αρχιτεκτονική μικροϋπηρεσιών στην τελευταία σας εργασία: πόσες υπηρεσίες, πώς αλληλεπιδρούσαν
Για ποιους σκοπούς χρησιμοποιήθηκε το PostgreSQL και το Redis;
Πείτε περισσότερα για την υπηρεσία βασισμένη σε Quartz και Redis: πώς λειτουργούσε, πώς κλιμακωνόταν
@Data @Entity @Table(name = "_store") public static class Book { @Id private String id; private String title; private String author; private int price; @Transient private String tmp; @Enumerated(EnumType.STRING) private BookType type; } public enum BookType { COMMON, PREMIUM; }
@PutMapping("/create") public Book create(@RequestBody CreateBook request) throws Exception { System.out.println("Έλεγχος αν το βιβλίο υπάρχει " + map); Book book = new ObjectMapper().convertValue(map, Book.class); Book b = repo.findByTitle(book.getTitle()); if (b != null) { throw new Exception("Το βιβλίο ήδη υπάρχει"); } book.setId(UUID.randomUUID().toString()); repo.save(book); log.debug("Το βιβλίο {} από {} δημιουργήθηκε με id {}", book.getTitle(), book.getAuthor(), book.getId()); return book; } @GetMapping("/get") public Book get(@QueryParam("id") String id) { log.debug("Λήψη βιβλίου " + id); return repo.findAll().stream() .filter(b -> b.getId().equals(id)) .findFirst().get(); } @GetMapping("/{id}") public Book get(@RequestParam("id") String id) { log.debug("Λήψη βιβλίου ", id); return repo.findById(id).orElseThrow(() -> new BookAlreadyExeption("βιβλίο όχι βρέθηκε")) findAll().stream() .filter(b -> b.getId().equals(id)) .findFirst().get(); }