Commit 30b34101 by Patryk Czarnik

wersje HTML w ramach multiformatu

parent d7f5ffd7
...@@ -40,6 +40,21 @@ public class RProducts { ...@@ -40,6 +40,21 @@ public class RProducts {
} }
} }
// 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
@GET
@Produces("text/html;charset=UTF-8")
public String readAllHTML() throws DBException {
List<Product> products = readAll();
StringBuilder txt = new StringBuilder("<!DOCTYPE html>\n<html><body>\n");
txt.append("<h1>Lista produktów</h1>\n");
for(Product product : products) {
txt.append(product.toHtml()).append('\n');
}
txt.append("</body></html>");
return txt.toString();
}
@GET @GET
@Produces({"application/json", "application/xml", "text/plain"}) @Produces({"application/json", "application/xml", "text/plain"})
@Path("/{id}") @Path("/{id}")
...@@ -50,6 +65,14 @@ public class RProducts { ...@@ -50,6 +65,14 @@ public class RProducts {
} }
} }
@GET
@Produces("text/html;charset=UTF-8")
@Path("/{id}")
public String readOneHTML(@PathParam("id") int productId) throws DBException, RecordNotFound {
Product product = readOne(productId);
return "<!DOCTYPE html>\n<html><body>" + product.toHtml() + "</body></html>";
}
// Dostęp do pojedynczego pola w rekordzie - nie ma obowiązku implementowania takich metod // 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) // 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 @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