Skip to content

Commit 6f170a5

Browse files
author
ethendev
committed
add client to query data
1 parent bad71be commit 6f170a5

File tree

13 files changed

+126
-15
lines changed

13 files changed

+126
-15
lines changed

pom.xml

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,8 @@
1919
<jackson.version>2.9.6</jackson.version>
2020
<lombok.version>1.18.2</lombok.version>
2121
<junit.version>4.12</junit.version>
22-
<logback.version>1.2.1</logback.version>
22+
<slf4j.version>1.7.25</slf4j.version>
23+
<okhttp.version>2.7.5</okhttp.version>
2324
</properties>
2425

2526
<dependencies>
@@ -36,6 +37,18 @@
3637
<scope>provided</scope>
3738
</dependency>
3839

40+
<dependency>
41+
<groupId>com.squareup.okhttp</groupId>
42+
<artifactId>okhttp</artifactId>
43+
<version>${okhttp.version}</version>
44+
</dependency>
45+
46+
<dependency>
47+
<groupId>org.slf4j</groupId>
48+
<artifactId>slf4j-api</artifactId>
49+
<version>${slf4j.version}</version>
50+
</dependency>
51+
3952
<dependency>
4053
<groupId>junit</groupId>
4154
<artifactId>junit</artifactId>
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
package com.github.ethendev.jdruid;
2+
3+
import com.fasterxml.jackson.databind.ObjectMapper;
4+
import com.github.ethendev.jdruid.query.BaseQuery;
5+
import com.squareup.okhttp.*;
6+
import lombok.extern.slf4j.Slf4j;
7+
8+
import java.io.IOException;
9+
10+
/**
11+
* @author: Ethan
12+
* @Date: 2018/9/18
13+
*/
14+
@Slf4j
15+
public class DruidClient {
16+
17+
private static final MediaType JSON = MediaType.parse("application/json; charset=utf-8");
18+
private final OkHttpClient client;
19+
private final ObjectMapper mapper;
20+
21+
public DruidClient() {
22+
this.client = new OkHttpClient();
23+
this.mapper = new ObjectMapper();
24+
}
25+
26+
public String query(String url, String param) throws IOException {
27+
Request request = new Request.Builder()
28+
.url(url)
29+
.post(RequestBody.create(JSON, param))
30+
.build();
31+
Response response = client.newCall(request).execute();
32+
if (!response.isSuccessful()) {
33+
throw new IOException("query error: " + response);
34+
}
35+
return response.body().toString();
36+
}
37+
38+
public String query(String url, BaseQuery param) throws IOException {
39+
return query(url, mapper.writeValueAsString(param));
40+
}
41+
42+
public Object query(String url, String param, Class<?> classType) throws IOException {
43+
String result = query(url, param);
44+
return mapper.readValue(result, classType);
45+
}
46+
47+
public Object query(String url, BaseQuery param, Class<?> classType) throws IOException {
48+
String result = query(url, mapper.writeValueAsString(param));
49+
return mapper.readValue(result, classType);
50+
}
51+
52+
}

src/main/java/com/github/ethendev/jdruid/filter/BoundFilter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
@EqualsAndHashCode(callSuper = true)
1515
@JsonInclude(JsonInclude.Include.NON_NULL)
1616
public class BoundFilter extends BaseFilter {
17-
private static String FILTER_TYPE = "bound";
17+
private static final String FILTER_TYPE = "bound";
1818

1919
private String dimension;
2020
private String lower;

src/main/java/com/github/ethendev/jdruid/filter/InFilter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
@Getter
1414
@EqualsAndHashCode(callSuper = true)
1515
public class InFilter extends BaseFilter {
16-
private static String FILTER_TYPE = "in";
16+
private static final String FILTER_TYPE = "in";
1717

1818
private String dimension;
1919
private List<Object> values;

src/main/java/com/github/ethendev/jdruid/filter/JavaScriptFilter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
@Getter
1212
@EqualsAndHashCode(callSuper = true)
1313
public class JavaScriptFilter extends BaseFilter {
14-
private static String FILTER_TYPE = "javascript";
14+
private static final String FILTER_TYPE = "javascript";
1515

1616
private String dimension;
1717
private String function;

src/main/java/com/github/ethendev/jdruid/filter/RegexFilter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
@Getter
1212
@EqualsAndHashCode(callSuper = true)
1313
public class RegexFilter extends BaseFilter {
14-
private static String FILTER_TYPE = "regex";
14+
private static final String FILTER_TYPE = "regex";
1515

1616
private String dimension;
1717
private String pattern;

src/main/java/com/github/ethendev/jdruid/filter/SearchFilter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
@Getter
1212
@EqualsAndHashCode(callSuper = true)
1313
public class SearchFilter extends BaseFilter {
14-
private static String FILTER_TYPE = "search";
14+
private static final String FILTER_TYPE = "search";
1515

1616
private String dimension;
1717

src/main/java/com/github/ethendev/jdruid/filter/SelectorFilter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
@Getter
1212
@EqualsAndHashCode(callSuper = true)
1313
public class SelectorFilter extends BaseFilter {
14-
private static String FILTER_TYPE = "regex";
14+
private static String FILTER_TYPE = "selector";
1515

1616
private String dimension;
1717
private String value;

src/main/java/com/github/ethendev/jdruid/query/GranularityType.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package com.github.ethendev.jdruid.query;
22

3-
import com.fasterxml.jackson.annotation.JsonGetter;
3+
import com.fasterxml.jackson.annotation.JsonValue;
44

55
/**
66
* @author: Ethan
@@ -26,7 +26,7 @@ public enum GranularityType {
2626
this.value = value;
2727
}
2828

29-
@JsonGetter
29+
@JsonValue
3030
public String getValue() {
3131
return value;
3232
}

src/main/java/com/github/ethendev/jdruid/query/GroupByQuery.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
@Getter
1919
@JsonInclude(JsonInclude.Include.NON_NULL)
2020
public class GroupByQuery extends BaseQuery {
21+
private static final String QUERY_TYPE = "groupBy";
2122
private List<String> dimensions;
2223
private LimitSpec limitSpec;
2324
// TODO change type
@@ -28,10 +29,10 @@ public class GroupByQuery extends BaseQuery {
2829
private Context context;
2930

3031
@Builder
31-
public GroupByQuery(String queryType, String dataSource, List<String> intervals, GranularityType granularity,
32+
public GroupByQuery(String dataSource, List<String> intervals, GranularityType granularity,
3233
@NonNull List<String> dimensions, LimitSpec limitSpec, Object having, BaseFilter filter,
3334
List<BaseAggregator> aggregators, List<BasePostAggregator> postAggregations, Context context) {
34-
super(queryType, dataSource, intervals, granularity);
35+
super(QUERY_TYPE, dataSource, intervals, granularity);
3536
this.dimensions = dimensions;
3637
this.limitSpec = limitSpec;
3738
this.having = having;

0 commit comments

Comments
 (0)