Commit f52b6c86 by Patryk Czarnik

Wiele formatów w @Consumes i @Produces

parent 64ab8675
package rest;
import java.math.BigDecimal;
import java.util.List;
import javax.ws.rs.Consumes;
import javax.ws.rs.DELETE;
......@@ -17,6 +16,7 @@ import sklep.db.DBException;
import sklep.db.ProductDAO;
import sklep.db.RecordNotFound;
import sklep.model.Product;
import sklep.model.ProductList;
import sklep.photo.PhotoUtil;
// JAX-RS - część Javy EE
......@@ -27,19 +27,20 @@ import sklep.photo.PhotoUtil;
@Path("/products")
public class RProduct {
// Gdy w Produces jest wiele formatów, to klient może wybrać za pomocą nagłówka Accept
// Gdy w Consumes jest wiele formatów, to klient może przysłać dane w dowolnym z nich (nagłówek Content-Type)
@GET
@Produces("application/json")
public List<Product> readAllProducts() throws DBException {
@Produces({"application/json", "application/xml", "text/plain"})
public ProductList readAllProducts() throws DBException {
try(DBConnection db = DBConnection.open()) {
ProductDAO productDAO = db.productDAO();
return productDAO.readAll();
return new ProductList(productDAO.readAll());
}
}
@Path("/{id}")
@GET
@Produces("application/json")
@Produces({"application/json", "application/xml", "text/plain"})
public Product readOneProduct(@PathParam("id") int productId) throws DBException, RecordNotFound {
try(DBConnection db = DBConnection.open()) {
ProductDAO productDAO = db.productDAO();
......@@ -56,7 +57,7 @@ public class RProduct {
@Path("/{id}/price")
@GET
@Produces("application/json")
@Produces({"application/json", "text/plain"})
public BigDecimal getPrice(@PathParam("id") int productId) throws DBException, RecordNotFound {
try(DBConnection db = DBConnection.open()) {
ProductDAO productDAO = db.productDAO();
......@@ -71,7 +72,7 @@ public class RProduct {
// Właśnie poprzez ten parametr przekazywane są dane przysłane w treści zapytania (w praktyce: POST i PUT).
@Path("/{id}/price")
@PUT
@Consumes("application/json")
@Consumes({"application/json", "text/plain"})
public void setPrice(@PathParam("id") int productId, BigDecimal newPrice) throws DBException, RecordNotFound {
try(DBConnection db = DBConnection.open()) {
ProductDAO productDAO = db.productDAO();
......@@ -84,7 +85,7 @@ public class RProduct {
@Path("/{id}")
@PUT
@Consumes("application/json")
@Consumes({"application/json", "application/xml"})
public void updateProduct(@PathParam("id") int productId, Product product) throws DBException {
try(DBConnection db = DBConnection.open()) {
ProductDAO productDAO = db.productDAO();
......@@ -105,8 +106,8 @@ public class RProduct {
// a aplikacja sama wybierze nowe ID z sekwencjii
// w wyniku zostanie odesłany uzupełniony produkt
@POST
@Consumes("application/json")
@Produces("application/json")
@Consumes({"application/json", "application/xml"})
@Produces({"application/json", "application/xml"})
public Product addProduct(Product product) throws DBException {
try(DBConnection db = DBConnection.open()) {
ProductDAO productDAO = db.productDAO();
......
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