-
Notifications
You must be signed in to change notification settings - Fork 30
/
AppInfoRestLocal.java
107 lines (89 loc) · 3.96 KB
/
AppInfoRestLocal.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
package com.edwise.pocs.jerseyrestclient;
import com.edwise.pocs.jerseyrestclient.model.Info;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
import com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider;
import org.glassfish.jersey.client.ClientConfig;
import javax.ws.rs.client.Client;
import javax.ws.rs.client.ClientBuilder;
import javax.ws.rs.client.Entity;
import javax.ws.rs.client.WebTarget;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import java.time.LocalDateTime;
import java.util.Arrays;
public class AppInfoRestLocal {
private static final String URL_BASE_API = "http://localhost:8080/api/";
private static final String INFO_RESOURCE = "info/";
public static void main(String[] args) {
ObjectMapper mapper = new ObjectMapper();
mapper.registerModule(new JavaTimeModule());
Client client = ClientBuilder.newClient(
new ClientConfig().register(new JacksonJsonProvider(mapper)));
WebTarget webTarget = client.target(URL_BASE_API).path(INFO_RESOURCE);
getOneInfo(webTarget);
getAllInfos(webTarget);
postOneInfo(webTarget);
putOneInfo(webTarget);
deleteInfo(webTarget);
}
private static void getOneInfo(WebTarget webTarget) {
Response response = webTarget.path("12")
.request(MediaType.APPLICATION_JSON_TYPE)
.get();
System.out.println();
System.out.println("GET one executed");
System.out.println("GET StatusCode = " + response.getStatus());
System.out.println("GET Headers = " + response.getHeaders());
System.out.println("GET Body (object): "
+ response.readEntity(Info.class));
}
private static void getAllInfos(WebTarget webTarget) {
Response response = webTarget
.request(MediaType.APPLICATION_JSON_TYPE)
.get();
System.out.println();
System.out.println("GET All StatusCode = " + response.getStatus());
System.out.println("GET All Headers = " + response.getHeaders());
System.out.println("GET Body (object list): ");
Arrays.asList(response.readEntity(Info[].class))
.forEach(info -> System.out.println("--> " + info));
}
private static void postOneInfo(WebTarget webTarget) {
Info infoToInsert =
createInfo(null, "New text", LocalDateTime.of(2015, 5, 15, 21, 25, 30));
Response response = webTarget
.request()
.post(Entity.entity(infoToInsert, MediaType.APPLICATION_JSON_TYPE));
System.out.println();
System.out.println("POST executed");
System.out.println("POST StatusCode = " + response.getStatus());
System.out.println("POST Body (object): "
+ response.readEntity(Info.class));
}
private static void putOneInfo(WebTarget webTarget) {
Info infoToUpdate =
createInfo(123L, "Info updated", LocalDateTime.of(2015, 5, 11, 22, 35, 35));
Response response = webTarget.path("123")
.request()
.put(Entity.entity(infoToUpdate, MediaType.APPLICATION_JSON_TYPE));
System.out.println();
System.out.println("PUT StatusCode = " + response.getStatus());
System.out.println("PUT Headers = " + response.getHeaders());
}
private static void deleteInfo(WebTarget webTarget) {
Response response = webTarget.path("122")
.request()
.delete();
System.out.println();
System.out.println("DELETE StatusCode = " + response.getStatus());
System.out.println("DELETE Headers = " + response.getHeaders());
}
private static Info createInfo(Long id, String infoText, LocalDateTime dateTime) {
Info info = new Info();
info.setId(id);
info.setInfoText(infoText);
info.setCreationDateTime(dateTime);
return info;
}
}