Commit dfa0e9e3 by Patryk Czarnik

Generowanie PDF także pod adresem /products

parent 447cbe44
...@@ -9,6 +9,7 @@ import sklep.db.DBException; ...@@ -9,6 +9,7 @@ import sklep.db.DBException;
import sklep.db.ProductDAO; import sklep.db.ProductDAO;
import sklep.db.RecordNotFound; import sklep.db.RecordNotFound;
import sklep.model.Product; import sklep.model.Product;
import sklep.model.ProductList;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.net.URI; import java.net.URI;
...@@ -28,7 +29,7 @@ import java.util.List; ...@@ -28,7 +29,7 @@ import java.util.List;
@Path("/products") @Path("/products")
public class RProducts { public class RProducts {
@GET @GET
@Produces({"application/json", "application/xml", "text/plain;charset=UTF-8"}) @Produces({"application/json", "text/plain;charset=UTF-8"})
// @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.TEXT_PLAIN}) // @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.TEXT_PLAIN})
public List<Product> allProducts() throws DBException { public List<Product> allProducts() throws DBException {
try(DBConnection db = DBConnection.open()) { try(DBConnection db = DBConnection.open()) {
...@@ -37,6 +38,12 @@ public class RProducts { ...@@ -37,6 +38,12 @@ public class RProducts {
} }
} }
@GET
@Produces({"application/xml", "application/pdf"})
public ProductList allProductsXml() throws DBException {
return new ProductList(allProducts());
}
// Może też być tak, że kilka metod działa pod tym samym adresem, ale służą one do tworzenia odpowiedzi w różnych formatach. // Może też być tak, że kilka metod działa pod tym samym adresem, ale służą one do tworzenia odpowiedzi w różnych formatach.
// Przykład: tworzenie HTML w oddzielnej metodzie // Przykład: tworzenie HTML w oddzielnej metodzie
@GET @GET
...@@ -54,7 +61,7 @@ public class RProducts { ...@@ -54,7 +61,7 @@ public class RProducts {
@GET @GET
@Path("/{id}") @Path("/{id}")
@Produces({"application/json", "application/xml", "text/plain;charset=UTF-8"}) @Produces({"application/json", "application/xml", "text/plain;charset=UTF-8", "application/pdf"})
// przykładowo /api/products/3 // przykładowo /api/products/3
public Product oneProduct(@PathParam("id") int productId) throws DBException, RecordNotFound { public Product oneProduct(@PathParam("id") int productId) throws DBException, RecordNotFound {
try(DBConnection db = DBConnection.open()) { try(DBConnection db = DBConnection.open()) {
......
...@@ -22,7 +22,7 @@ public class Klient12_RestClient_String { ...@@ -22,7 +22,7 @@ public class Klient12_RestClient_String {
// readEntity(OKREŚLENIE TYPU) stara się odczytać tresc odpowiedzi jako obiekt podanego typu // readEntity(OKREŚLENIE TYPU) stara się odczytać tresc odpowiedzi jako obiekt podanego typu
// Obsługiwane typy to m.in: byte[], String, InputStream, File // Obsługiwane typy to m.in: byte[], String, InputStream, File
// Dodając odpowiednie "MeassgeBodyReader", możemy obsługiwać dowolne typy. // Dodając odpowiednie "MessageBodyReader", możemy obsługiwać dowolne typy.
// W szczególności, gdy dodamy do projektu obsługę XML lub JSON (zob. zależności Mavena), // W szczególności, gdy dodamy do projektu obsługę XML lub JSON (zob. zależności Mavena),
// będziemy mogli odczytywać dane w postaci obiektów naszego modelu, np. Product. // będziemy mogli odczytywać dane w postaci obiektów naszego modelu, np. Product.
String dane = response.readEntity(String.class); String dane = response.readEntity(String.class);
......
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