Commit 21459e8a by Patryk Czarnik

Wiele formatów w jednej klasie - RProducts

parent 5f05ee74
...@@ -17,11 +17,11 @@ import sklep.db.ProductDAO; ...@@ -17,11 +17,11 @@ import sklep.db.ProductDAO;
import sklep.db.RecordNotFound; import sklep.db.RecordNotFound;
import sklep.model.Product; import sklep.model.Product;
@Path("products") @Path("/products")
public class RProducts { public class RProducts {
@GET @GET
@Produces("application/json") @Produces({"application/json", "application/xml", "text/plain"})
public List<Product> readAll() throws DBException { public List<Product> readAll() throws DBException {
try(DBConnection db = DBConnection.open()) { try(DBConnection db = DBConnection.open()) {
ProductDAO productDAO = db.productDAO(); ProductDAO productDAO = db.productDAO();
...@@ -31,7 +31,7 @@ public class RProducts { ...@@ -31,7 +31,7 @@ public class RProducts {
@GET @GET
@Path("/{id}") @Path("/{id}")
@Produces("application/json") @Produces({"application/json", "application/xml", "text/plain"})
public Product readOne(@PathParam("id") int productId) throws DBException, RecordNotFound { public Product readOne(@PathParam("id") int productId) throws DBException, RecordNotFound {
try(DBConnection db = DBConnection.open()) { try(DBConnection db = DBConnection.open()) {
ProductDAO productDAO = db.productDAO(); ProductDAO productDAO = db.productDAO();
...@@ -40,7 +40,7 @@ public class RProducts { ...@@ -40,7 +40,7 @@ public class RProducts {
} }
@POST @POST
@Consumes("application/json") @Consumes({"application/json", "application/xml"})
// W metodach typu POST i PUT powinien znajdować się dokładnie jeden parametr nieozanczony żadną adnotacją. // W metodach typu POST i PUT powinien znajdować się dokładnie jeden parametr nieozanczony żadną adnotacją.
// Do tego parametru zostanie przekazana wartość utworzona na podstawie treści zapytania (content / body / entity). // Do tego parametru zostanie przekazana wartość utworzona na podstawie treści zapytania (content / body / entity).
// W adnotacji @Consumes określamy format, w jakim te dane mają być przysłane. // W adnotacji @Consumes określamy format, w jakim te dane mają być przysłane.
...@@ -59,7 +59,7 @@ public class RProducts { ...@@ -59,7 +59,7 @@ public class RProducts {
// Właściwą strukturą adresu będzie wtedy np. products/3/price // Właściwą strukturą adresu będzie wtedy np. products/3/price
@GET @GET
@Path("/{id}/price") @Path("/{id}/price")
@Produces("application/json") @Produces({"application/json", "text/plain"})
public BigDecimal getPrice(@PathParam("id") int productId) throws DBException, RecordNotFound { public BigDecimal getPrice(@PathParam("id") int productId) throws DBException, RecordNotFound {
try(DBConnection db = DBConnection.open()) { try(DBConnection db = DBConnection.open()) {
ProductDAO productDAO = db.productDAO(); ProductDAO productDAO = db.productDAO();
...@@ -70,7 +70,7 @@ public class RProducts { ...@@ -70,7 +70,7 @@ public class RProducts {
// Metoda PUT służy w HTTP do zapisywania danych DOKŁADNIE POD PODANYM ADRESEM // Metoda PUT służy w HTTP do zapisywania danych DOKŁADNIE POD PODANYM ADRESEM
@PUT @PUT
@Path("/{id}/price") @Path("/{id}/price")
@Consumes("application/json") @Consumes({"application/json", "text/plain"})
public void setPrice(@PathParam("id") int productId, BigDecimal newPrice) throws DBException, RecordNotFound { public void setPrice(@PathParam("id") int productId, BigDecimal newPrice) throws DBException, RecordNotFound {
try(DBConnection db = DBConnection.open()) { try(DBConnection db = DBConnection.open()) {
ProductDAO productDAO = db.productDAO(); ProductDAO productDAO = db.productDAO();
......
package rest; package rest;
import java.math.BigDecimal;
import java.util.List;
import jakarta.ws.rs.Consumes; import jakarta.ws.rs.Consumes;
import jakarta.ws.rs.DELETE; import jakarta.ws.rs.DELETE;
import jakarta.ws.rs.GET; import jakarta.ws.rs.GET;
......
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