Commit d7f5ffd7 by Patryk Czarnik

Wersja multiformatowa XML + JSON

parent cbfe08b2
......@@ -32,7 +32,7 @@ import sklep.model.Product;
public class RProducts {
@GET
@Produces("application/json")
@Produces({"application/json", "application/xml", "text/plain"})
public List<Product> readAll() throws DBException {
try(DBConnection db = DBConnection.open()) {
ProductDAO productDAO = db.productDAO();
......@@ -41,7 +41,7 @@ public class RProducts {
}
@GET
@Produces("application/json")
@Produces({"application/json", "application/xml", "text/plain"})
@Path("/{id}")
public Product readOne(@PathParam("id") int productId) throws DBException, RecordNotFound {
try(DBConnection db = DBConnection.open()) {
......@@ -53,7 +53,7 @@ public class RProducts {
// Dostęp do pojedynczego pola w rekordzie - nie ma obowiązku implementowania takich metod
// i nie robi robi się tego zbyt często, ale pokazujemy, że można (gdyby klient często potrzebował dostępu do wybranego szczegółu)
@GET
@Produces("application/json")
@Produces({"application/json", "text/plain"})
@Path("/{id}/price")
public BigDecimal getPrice(@PathParam("id") int productId) throws DBException, RecordNotFound {
try(DBConnection db = DBConnection.open()) {
......@@ -68,7 +68,7 @@ public class RProducts {
// W JAX-RS metoda może posiadać tylko jeden parametr bez adnotacji i to właśnie przez ten parametr przekazywana jest treść zapytania
// (te dane, które przysłał klient). Format tych danych opisuje adnotacja @Consumes
@PUT
@Consumes("application/json")
@Consumes({"application/json", "text/plain"})
@Path("/{id}/price")
public void putPrice(@PathParam("id") int productId,
BigDecimal newPrice) throws DBException, RecordNotFound {
......@@ -84,11 +84,11 @@ public class RProducts {
// W praktyce REST metoda POST jest używana do dodawania nowych rekordów do katalogu.
// Może być także używana w innych celach - gdy klient ma "przysłać dane na serwer", a serwer coś z tym zrobi (podobnie jak to było w SOAP). @POST
// POST w tym miejscu jest lepszy niż PUT, bo zapisując nowy rekord, nie wiemy z góry jakie będzie będzie jego ID,
// czyli nie wiemey, pod adresem zapisze się nowy produkt.
// czyli nie wiemy, pod adresem zapisze się nowy produkt.
// POST potrafi "dodać rekord do katalogu".
@POST
@Consumes("application/json")
@Produces("application/json")
@Consumes({"application/json", "application/xml"})
@Produces({"application/json", "application/xml"})
public Product zapiszProdukt(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