Skip to content

Commit 1ec0421

Browse files
committed
unirest java
1 parent 065485f commit 1ec0421

File tree

2 files changed

+183
-91
lines changed

2 files changed

+183
-91
lines changed
Lines changed: 98 additions & 91 deletions
Original file line numberDiff line numberDiff line change
@@ -1,97 +1,104 @@
11
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
2-
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
3-
<modelVersion>4.0.0</modelVersion>
4-
<groupId>com.howtoprogram</groupId>
5-
<artifactId>java-restful-client-example</artifactId>
6-
<version>0.0.1-SNAPSHOT</version>
7-
<properties>
8-
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
9-
<maven.compiler.source>1.8</maven.compiler.source>
10-
<maven.compiler.target>1.8</maven.compiler.target>
11-
</properties>
2+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
3+
<modelVersion>4.0.0</modelVersion>
4+
<groupId>com.howtoprogram</groupId>
5+
<artifactId>java-restful-client-example</artifactId>
6+
<version>0.0.1-SNAPSHOT</version>
7+
<properties>
8+
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
9+
<maven.compiler.source>1.8</maven.compiler.source>
10+
<maven.compiler.target>1.8</maven.compiler.target>
11+
</properties>
1212

13-
<dependencies>
14-
<dependency>
15-
<groupId>com.fasterxml.jackson.core</groupId>
16-
<artifactId>jackson-databind</artifactId>
17-
<version>2.7.5</version>
18-
</dependency>
19-
<dependency>
20-
<groupId>com.fasterxml.jackson.dataformat</groupId>
21-
<artifactId>jackson-dataformat-xml</artifactId>
22-
<version>2.6.3</version>
23-
</dependency>
24-
<dependency>
25-
<groupId>org.springframework</groupId>
26-
<artifactId>spring-web</artifactId>
27-
<version>4.2.6.RELEASE</version>
28-
</dependency>
13+
<dependencies>
14+
<dependency>
15+
<groupId>com.fasterxml.jackson.core</groupId>
16+
<artifactId>jackson-databind</artifactId>
17+
<version>2.7.5</version>
18+
</dependency>
19+
<dependency>
20+
<groupId>com.fasterxml.jackson.dataformat</groupId>
21+
<artifactId>jackson-dataformat-xml</artifactId>
22+
<version>2.6.3</version>
23+
</dependency>
24+
<dependency>
25+
<groupId>org.springframework</groupId>
26+
<artifactId>spring-web</artifactId>
27+
<version>4.2.6.RELEASE</version>
28+
</dependency>
2929

30-
<dependency>
31-
<groupId>org.apache.httpcomponents</groupId>
32-
<artifactId>httpasyncclient</artifactId>
33-
<version>4.1.2</version>
34-
</dependency>
35-
<dependency>
36-
<groupId>org.slf4j</groupId>
37-
<artifactId>slf4j-api</artifactId>
38-
<version>1.7.21</version>
39-
</dependency>
40-
<dependency>
41-
<groupId>ch.qos.logback</groupId>
42-
<artifactId>logback-classic</artifactId>
43-
<version>1.1.7</version>
44-
</dependency>
45-
<!-- Begin Jersey dependencies -->
46-
<dependency>
47-
<groupId>org.glassfish.jersey.core</groupId>
48-
<artifactId>jersey-client</artifactId>
49-
<version>2.23.1</version>
50-
<scope>provided</scope>
51-
</dependency>
52-
<dependency>
53-
<groupId>org.glassfish.jersey.media</groupId>
54-
<artifactId>jersey-media-json-jackson</artifactId>
55-
<version>2.23.1</version>
56-
</dependency>
57-
<!-- End Jersey dependencies -->
30+
<dependency>
31+
<groupId>org.apache.httpcomponents</groupId>
32+
<artifactId>httpasyncclient</artifactId>
33+
<version>4.1.2</version>
34+
</dependency>
35+
<dependency>
36+
<groupId>org.slf4j</groupId>
37+
<artifactId>slf4j-api</artifactId>
38+
<version>1.7.21</version>
39+
</dependency>
40+
<dependency>
41+
<groupId>ch.qos.logback</groupId>
42+
<artifactId>logback-classic</artifactId>
43+
<version>1.1.7</version>
44+
</dependency>
45+
<!-- Begin Jersey dependencies -->
46+
<dependency>
47+
<groupId>org.glassfish.jersey.core</groupId>
48+
<artifactId>jersey-client</artifactId>
49+
<version>2.23.1</version>
50+
<scope>provided</scope>
51+
</dependency>
52+
<dependency>
53+
<groupId>org.glassfish.jersey.media</groupId>
54+
<artifactId>jersey-media-json-jackson</artifactId>
55+
<version>2.23.1</version>
56+
</dependency>
57+
<!-- End Jersey dependencies -->
5858

59-
<!-- Begin Resteasy dependencies -->
60-
<dependency>
61-
<groupId>org.jboss.resteasy</groupId>
62-
<artifactId>resteasy-client</artifactId>
63-
<version>3.0.17.Final</version>
64-
</dependency>
65-
<dependency>
66-
<groupId>org.jboss.resteasy</groupId>
67-
<artifactId>resteasy-jackson2-provider</artifactId>
68-
<version>3.0.17.Final</version>
69-
</dependency>
70-
<!-- End Resteasy dependencies -->
71-
<!-- Begin Apache CXF dependencies -->
72-
<dependency>
73-
<groupId>org.apache.cxf</groupId>
74-
<artifactId>cxf-rt-rs-client</artifactId>
75-
<version>3.0.3</version>
76-
</dependency>
77-
<dependency>
78-
<groupId>org.apache.cxf</groupId>
79-
<artifactId>cxf-rt-frontend-jaxrs</artifactId>
80-
<version>3.0.3</version>
81-
</dependency>
59+
<!-- Begin Resteasy dependencies -->
60+
<dependency>
61+
<groupId>org.jboss.resteasy</groupId>
62+
<artifactId>resteasy-client</artifactId>
63+
<version>3.0.17.Final</version>
64+
</dependency>
65+
<dependency>
66+
<groupId>org.jboss.resteasy</groupId>
67+
<artifactId>resteasy-jackson2-provider</artifactId>
68+
<version>3.0.17.Final</version>
69+
</dependency>
70+
<!-- End Resteasy dependencies -->
71+
<!-- Begin Apache CXF dependencies -->
72+
<dependency>
73+
<groupId>org.apache.cxf</groupId>
74+
<artifactId>cxf-rt-rs-client</artifactId>
75+
<version>3.0.3</version>
76+
</dependency>
77+
<dependency>
78+
<groupId>org.apache.cxf</groupId>
79+
<artifactId>cxf-rt-frontend-jaxrs</artifactId>
80+
<version>3.0.3</version>
81+
</dependency>
8282

83-
<!-- End Apache CXF dependencies -->
84-
<!-- Begin Netflix Feign dependencies -->
85-
<dependency>
86-
<groupId>com.netflix.feign</groupId>
87-
<artifactId>feign-core</artifactId>
88-
<version>8.18.0</version>
89-
</dependency>
90-
<dependency>
91-
<groupId>com.netflix.feign</groupId>
92-
<artifactId>feign-jackson</artifactId>
93-
<version>8.18.0</version>
94-
</dependency>
95-
<!-- End Netflix Feign dependencies -->
96-
</dependencies>
83+
<!-- End Apache CXF dependencies -->
84+
<!-- Begin Netflix Feign dependencies -->
85+
<dependency>
86+
<groupId>com.netflix.feign</groupId>
87+
<artifactId>feign-core</artifactId>
88+
<version>8.18.0</version>
89+
</dependency>
90+
<dependency>
91+
<groupId>com.netflix.feign</groupId>
92+
<artifactId>feign-jackson</artifactId>
93+
<version>8.18.0</version>
94+
</dependency>
95+
<!-- End Netflix Feign dependencies -->
96+
<!-- Begin Unirest dependencies -->
97+
<dependency>
98+
<groupId>com.mashape.unirest</groupId>
99+
<artifactId>unirest-java</artifactId>
100+
<version>1.4.9</version>
101+
</dependency>
102+
<!-- End Unirest dependencies -->
103+
</dependencies>
97104
</project>
Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
package com.howtoprogram.repository.unirest;
2+
3+
import java.io.IOException;
4+
5+
import com.fasterxml.jackson.core.JsonProcessingException;
6+
import com.howtoprogram.domain.Book;
7+
import com.mashape.unirest.http.HttpResponse;
8+
import com.mashape.unirest.http.ObjectMapper;
9+
import com.mashape.unirest.http.Unirest;
10+
11+
public class BookRepositoryImplUnirest {
12+
private static final String URI_BOOK = "http://localhost:8080/v1/books";
13+
14+
public BookRepositoryImplUnirest() {
15+
Unirest.setObjectMapper(new ObjectMapper() {
16+
private com.fasterxml.jackson.databind.ObjectMapper jacksonObjectMapper =
17+
new com.fasterxml.jackson.databind.ObjectMapper();
18+
19+
public <T> T readValue(String value, Class<T> valueType) {
20+
try {
21+
return jacksonObjectMapper.readValue(value, valueType);
22+
} catch (IOException e) {
23+
throw new RuntimeException(e);
24+
}
25+
}
26+
27+
public String writeValue(Object value) {
28+
try {
29+
return jacksonObjectMapper.writeValueAsString(value);
30+
} catch (JsonProcessingException e) {
31+
throw new RuntimeException(e);
32+
}
33+
}
34+
});
35+
}
36+
37+
public void deleteBook(Long id) throws Exception {
38+
HttpResponse<String> response =
39+
Unirest.delete(URI_BOOK + "/{id}").routeParam("id", String.valueOf(id)).asString();
40+
System.out.println("Status code:" + response.getStatus());
41+
}
42+
43+
public static void main(String[] args) throws Exception {
44+
BookRepositoryImplUnirest bookRepository = new BookRepositoryImplUnirest();
45+
// Getting the first book from the RESTful service
46+
Book book = bookRepository.getAllBooks()[0];
47+
System.out.println(book);
48+
bookRepository.deleteBook(book.getId());
49+
50+
}
51+
52+
public Book updateBook(Book book) throws Exception {
53+
HttpResponse<Book> response = Unirest.put(URI_BOOK).header("accept", "application/json")
54+
.header("Content-Type", "application/json").body(book).asObject(Book.class);
55+
int status = response.getStatus();
56+
System.out.println("Status code: " + status);
57+
Book updatedBook = response.getBody();
58+
return updatedBook;
59+
}
60+
61+
62+
public Book createBook(Book book) throws Exception {
63+
HttpResponse<Book> response = Unirest.post(URI_BOOK).header("accept", "application/json")
64+
.header("Content-Type", "application/json").body(book).asObject(Book.class);
65+
int status = response.getStatus();
66+
System.out.println("Status code: " + status);
67+
Book createdBook = response.getBody();
68+
return createdBook;
69+
70+
}
71+
72+
73+
74+
public Book[] getAllBooks() throws Exception {
75+
HttpResponse<Book[]> response = Unirest.get(URI_BOOK).asObject(Book[].class);
76+
Book[] books = response.getBody();
77+
return books;
78+
}
79+
80+
81+
public Book findBookById(Long id) {
82+
return null;
83+
}
84+
85+
}

0 commit comments

Comments
 (0)