Commit 3aec4083 by Patryk Czarnik

quarkus1 - spis treści i obsłua parametrów

parent ac261419
package alx;
import jakarta.ws.rs.GET;
import jakarta.ws.rs.Path;
import jakarta.ws.rs.PathParam;
@Path("/calc")
public class Kalkulator {
@GET
@Path("/{x}+{y}")
public long dodaj(@PathParam("x") long a, @PathParam("y") long b) {
return a+b;
}
@GET
@Path("/{x}-{y}")
public long odejmij(@PathParam("x") long a, @PathParam("y") long b) {
return a-b;
}
@GET
@Path("/{x}*{y}")
public long pomnoz(@PathParam("x") long a, @PathParam("y") long b) {
return a*b;
}
@GET
@Path("/{x}/{y}")
public long podziel(@PathParam("x") long a, @PathParam("y") long b) {
return a/b;
}
}
package alx;
import java.time.LocalDateTime;
import java.util.Arrays;
import jakarta.ws.rs.CookieParam;
import jakarta.ws.rs.GET;
import jakarta.ws.rs.HeaderParam;
import jakarta.ws.rs.MatrixParam;
import jakarta.ws.rs.Path;
import jakarta.ws.rs.PathParam;
import jakarta.ws.rs.Produces;
import jakarta.ws.rs.QueryParam;
import jakarta.ws.rs.core.NewCookie;
import jakarta.ws.rs.core.Response;
/* Przykładowe adresy z parametrami:
/rest1/parametry/query?a=Ala&b=Ola&b=Ela&t=Basia&t=Kasia&t=Zosia
/rest1/parametry/matrix;a=Ala;b=Ola;b=Ela;t=Basia;t=Kasia;t=Zosia
*/
@Path("/parametry")
@Produces("text/plain")
public class Parametry {
@GET
@Path("/query")
public String query(
@QueryParam("a") String a,
@QueryParam("b") String b,
@QueryParam("t") String[] t) {
return "Parametr a = " + a
+ "\nParametr b = " + b
+ "\nTablica: " + Arrays.toString(t);
}
@GET
@Path("/matrix")
public String matrix(
@MatrixParam("a") String a,
@MatrixParam("b") String b,
@MatrixParam("t") String[] t) {
return "Parametr a = " + a
+ "\nParametr b = " + b
+ "\nTablica: " + Arrays.toString(t);
}
// /rest1/parametry/path/Ala/123/98765qwerty@res-zta
@GET
@Path("/path/{a}/{b}/{cyfry:\\d+}{litery:\\w+}{reszta}")
public String pathParam(
@PathParam("a") String a,
@PathParam("b") String b,
@PathParam("cyfry") String cyfry,
@PathParam("litery") String litery,
@PathParam("reszta") String reszta
) {
return "Parametr a = " + a
+ "\nParametr b = " + b
+ "\nCyfry: " + cyfry
+ "\nLitery: " + litery
+ "\nReszta: " + reszta;
}
@GET
@Path("/headers")
public String headers(
@HeaderParam("accept") String accept,
@HeaderParam("user-agent") String agent
) {
return "Accept: " + accept
+ "\nUser-Agent: " + agent;
}
@GET
@Path("/cookies")
public String cookies(
@CookieParam("ciacho") String ciacho,
@CookieParam("JSESSIONID") String sessionId
) {
return "Ciacho: " + ciacho
+ "\nSesja: " + sessionId;
}
@GET
@Path("/ustaw")
// ustawia ciacho
public Response ustawCiacho() {
String ciacho = LocalDateTime.now().toString();
return Response.ok()
.cookie(new NewCookie("ciacho", ciacho))
.type("text/plain")
.entity("Ustawiam ciacho na: " + ciacho)
.build();
}
}
package alx;
import jakarta.ws.rs.GET;
import jakarta.ws.rs.Path;
import jakarta.ws.rs.Produces;
@Path("/")
public class SpisTresci {
@GET
@Produces("text/html;charset=UTF-8")
public String index() {
return """
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Elementy techniczne JAX-RS</title>
</head>
<body>
<h1>Elementy techniczne JAX-RS</h1>
<h2>Podstawy</h2>
<ul>
<li><a href="hello">Hello world</a></li>
<li><a href="student">Student</a> - zwracanie obiektu</li>
</ul>
<h2>Data i czas</h2>
<ul>
<li><a href="dt0">dt0</a> - data i czas jako field</li>
<li><a href="dt0/date">dt0/date</a></li>
<li><a href="dt0/time">dt0/time</a></li>
<li><a href="dt1">dt1</a> - data i czas bezpośrednio</li>
<li><a href="dt1/date">dt1/date</a></li>
<li><a href="dt1/time">dt1/time</a></li>
</ul>
<h2>Parametry</h2>
<ul>
<li><a href="parametry/query?a=Ala&b=Ola&b=Ela&t=Basia&t=Kasia&t=Zosia">@QueryParam</a></li>
<li><a href="parametry/matrix;a=Ala;b=Ola;b=Ela;t=Basia;t=Kasia;t=Zosia">@MatrixParam</a></li>
<li><a href="parametry/path/Ala/123/98765qwerty@res-zta">@PathParam</a></li>
<li><a href="parametry/headers">@HeaderParam</a></li>
<li><a href="parametry/cookies">@CookieParam</a></li>
<li><a href="parametry/ustaw">Ustaw ciacho</a></li>
</ul>
<h2>Kalkulator</h2>
<ul>
<li><a href="calc/12+13">dodawanie</a></li>
<li><a href="calc/12*13">mnożenie</a></li>
</ul>
</body>
</html>
""";
}
}
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