String token = "XXX-YYY-ZZZ";
String baseUrl = "http://localhost:9998/mylibrary";
try (Client client = ClientBuilder.newBuilder()
.register(JacksonFeature.class)
.build()) {
WebTarget baseTarget = client.target(baseUrl);
// Initialize library
try {
String initResponse = baseTarget.path("library/init")
.request(MediaType.APPLICATION_JSON)
.put(Entity.entity("", MediaType.TEXT_PLAIN), String.class);
System.out.println("Library initialized: " + initResponse);
} catch (WebApplicationException e) {
System.err.println("Failed to initialize library: " + e.getMessage());
}
// Get author
WebTarget authorTarget = baseTarget.path("authors/{id}");
try (Response response = authorTarget
.resolveTemplate("id", "1")
.request(MediaType.APPLICATION_JSON)
.header("Authorization", "Bearer " + token)
.get()) {
if (response.getStatus() == Response.Status.OK.getStatusCode()) {
Author author = response.readEntity(Author.class);
System.out.println("Author: " + author);
} else {
String error = response.hasEntity() ? response.readEntity(String.class) : "Unknown error";
System.err.printf("Error %d: %s%n", response.getStatus(), error);
}
}
} catch (ProcessingException e) {
System.err.println("Communication error: " + e.getMessage());
}
Library initialized: 2
Author: Library.Author(id=1, name=Martin, firstname=Alfred, biography=null)