Commit 0d04f0ab by Patryk Czarnik

getPrice i getPhoto

parent f502ed42
package sklep.rest;
import java.math.BigDecimal;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -12,6 +13,7 @@ import org.springframework.web.server.ResponseStatusException;
import sklep.model.Product;
import sklep.repository.ProductRepository;
import sklep.util.PhotoUtil;
@RestController
@RequestMapping("/rest/products")
......@@ -19,6 +21,9 @@ public class ProductEndpoint {
@Autowired
private ProductRepository productRepository;
@Autowired
private PhotoUtil photoUtil;
@GetMapping
public List<Product> readAll() {
return productRepository.findAll();
......@@ -28,5 +33,18 @@ public class ProductEndpoint {
public Product readOne(@PathVariable Integer id) {
return productRepository.findById(id).orElseThrow(() -> new ResponseStatusException(HttpStatus.NOT_FOUND));
}
// Ta metoda pokazana tylko po to, aby wytłumaczyć, że struktura adresów powinna odpowiadać logicznej strukturze danych.
// W prawdziwej aplikacji raczej nie dochodzi się do poziomu pojedynczych pól. Teoretycznie można.
@GetMapping("/{id}/price")
public BigDecimal getPrice(@PathVariable Integer id) {
return readOne(id).getPrice();
}
@GetMapping(path="/{id}/photo", produces="image/jpeg")
public byte[] getPhoto(@PathVariable Integer id) {
return photoUtil.readBytes(id);
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment