Skip to content

Commit 10e36fd

Browse files
committed
#11 - Support Object types for form, query and header params
1 parent 58467e7 commit 10e36fd

File tree

3 files changed

+45
-309
lines changed

3 files changed

+45
-309
lines changed

client/src/main/java/io/avaje/http/client/DHttpClientRequest.java

Lines changed: 12 additions & 107 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,11 @@ public HttpClientRequest header(String name, String value) {
7272
return this;
7373
}
7474

75+
@Override
76+
public HttpClientRequest header(String name, Object value) {
77+
return value != null ? header(name, value.toString()) : this;
78+
}
79+
7580
@Override
7681
public HttpClientRequest gzip(boolean gzip) {
7782
this.gzip = gzip;
@@ -103,13 +108,7 @@ public HttpClientRequest path(long val) {
103108
}
104109

105110
@Override
106-
public HttpClientRequest path(UUID val) {
107-
url.path(val);
108-
return this;
109-
}
110-
111-
@Override
112-
public HttpClientRequest path(LocalDate val) {
111+
public HttpClientRequest path(Object val) {
113112
url.path(val);
114113
return this;
115114
}
@@ -121,55 +120,20 @@ public HttpClientRequest matrixParam(String name, String value) {
121120
}
122121

123122
@Override
124-
public HttpClientRequest queryParam(String name, String value) {
125-
url.queryParam(name, value);
126-
return this;
127-
}
128-
129-
@Override
130-
public HttpClientRequest queryParam(String name, Integer value) {
131-
url.queryParam(name, value);
132-
return this;
133-
}
134-
135-
@Override
136-
public HttpClientRequest queryParam(String name, Long value) {
137-
url.queryParam(name, value);
138-
return this;
139-
}
140-
141-
@Override
142-
public HttpClientRequest queryParam(String name, UUID value) {
143-
url.queryParam(name, value);
144-
return this;
145-
}
146-
147-
@Override
148-
public HttpClientRequest queryParam(String name, Boolean value) {
149-
url.queryParam(name, value);
150-
return this;
151-
}
152-
153-
@Override
154-
public HttpClientRequest queryParam(String name, LocalDate value) {
155-
url.queryParam(name, value);
123+
public HttpClientRequest matrixParam(String name, Object value) {
124+
url.matrixParam(name, value);
156125
return this;
157126
}
158127

159-
@Override
160-
public HttpClientRequest queryParam(String name, LocalTime value) {
161-
url.queryParam(name, value);
162-
return this;
163-
}
164128

165129
@Override
166-
public HttpClientRequest queryParam(String name, LocalDateTime value) {
130+
public HttpClientRequest queryParam(String name, String value) {
167131
url.queryParam(name, value);
168132
return this;
169133
}
170134

171135
@Override
172-
public HttpClientRequest queryParam(String name, Instant value) {
136+
public HttpClientRequest queryParam(String name, Object value) {
173137
url.queryParam(name, value);
174138
return this;
175139
}
@@ -187,67 +151,8 @@ public HttpClientRequest formParam(String name, String value) {
187151
}
188152

189153
@Override
190-
public HttpClientRequest formParam(String name, Integer value) {
191-
if (value != null) {
192-
formParam(name, Integer.toString(value));
193-
}
194-
return this;
195-
}
196-
197-
@Override
198-
public HttpClientRequest formParam(String name, Long value) {
199-
if (value != null) {
200-
formParam(name, Long.toString(value));
201-
}
202-
return this;
203-
}
204-
205-
@Override
206-
public HttpClientRequest formParam(String name, UUID value) {
207-
if (value != null) {
208-
formParam(name, value.toString());
209-
}
210-
return this;
211-
}
212-
213-
@Override
214-
public HttpClientRequest formParam(String name, Boolean value) {
215-
if (value != null) {
216-
formParam(name, value.toString());
217-
}
218-
return this;
219-
}
220-
221-
@Override
222-
public HttpClientRequest formParam(String name, LocalDate value) {
223-
if (value != null) {
224-
formParam(name, value.toString());
225-
}
226-
return this;
227-
}
228-
229-
@Override
230-
public HttpClientRequest formParam(String name, LocalTime value) {
231-
if (value != null) {
232-
formParam(name, value.toString());
233-
}
234-
return this;
235-
}
236-
237-
@Override
238-
public HttpClientRequest formParam(String name, LocalDateTime value) {
239-
if (value != null) {
240-
formParam(name, value.toString());
241-
}
242-
return this;
243-
}
244-
245-
@Override
246-
public HttpClientRequest formParam(String name, Instant value) {
247-
if (value != null) {
248-
formParam(name, value.toString());
249-
}
250-
return this;
154+
public HttpClientRequest formParam(String name, Object value) {
155+
return value != null ? formParam(name, value.toString()) : this;
251156
}
252157

253158
@Override

client/src/main/java/io/avaje/http/client/HttpClientRequest.java

Lines changed: 26 additions & 111 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,7 @@
44
import java.io.InputStream;
55
import java.net.http.HttpRequest;
66
import java.nio.file.Path;
7-
import java.time.*;
8-
import java.util.UUID;
7+
import java.time.Duration;
98
import java.util.function.Supplier;
109

1110
/**
@@ -53,6 +52,15 @@ public interface HttpClientRequest {
5352
*/
5453
HttpClientRequest header(String name, String value);
5554

55+
/**
56+
* Add the header to the request implicitly converting the value to a String.
57+
*
58+
* @param name The header name
59+
* @param value The header value
60+
* @return The request being built
61+
*/
62+
HttpClientRequest header(String name, Object value);
63+
5664
/**
5765
* Set if body content should be gzip encoded.
5866
*
@@ -108,30 +116,31 @@ public interface HttpClientRequest {
108116
* @param val The value to add to the URL path.
109117
* @return The request being built
110118
*/
111-
HttpClientRequest path(UUID val);
119+
HttpClientRequest path(Object val);
112120

113121
/**
114-
* Add a path segment to the URL.
122+
* Add a matrix parameter to the current path segment.
115123
*
116-
* @param val The value to add to the URL path.
124+
* @param name The matrix parameter name
125+
* @param value The matrix parameter value which can be null
117126
* @return The request being built
118127
*/
119-
HttpClientRequest path(LocalDate val);
128+
HttpClientRequest matrixParam(String name, String value);
120129

121130
/**
122131
* Add a matrix parameter to the current path segment.
123132
*
124133
* @param name The matrix parameter name
125-
* @param value The matrix parameter value
134+
* @param value The matrix parameter value which can be null
126135
* @return The request being built
127136
*/
128-
HttpClientRequest matrixParam(String name, String value);
137+
HttpClientRequest matrixParam(String name, Object value);
129138

130139
/**
131140
* Add a query parameter
132141
*
133142
* @param name The name of the query parameter
134-
* @param value The value of the query parameter
143+
* @param value The value of the query parameter which can be null
135144
* @return The request being built
136145
*/
137146
HttpClientRequest queryParam(String name, String value);
@@ -140,122 +149,28 @@ public interface HttpClientRequest {
140149
* Add a Integer query parameter
141150
*
142151
* @param name The name of the query parameter
143-
* @param value The value of the query parameter
144-
* @return The request being built
145-
*/
146-
HttpClientRequest queryParam(String name, Integer value);
147-
148-
/**
149-
* Add a Long query parameter
150-
*
151-
* @param name The name of the query parameter
152-
* @param value The value of the query parameter
153-
* @return The request being built
154-
*/
155-
HttpClientRequest queryParam(String name, Long value);
156-
157-
/**
158-
* Add a UUID query parameter
159-
*
160-
* @param name The name of the query parameter
161-
* @param value The value of the query parameter
162-
* @return The request being built
163-
*/
164-
HttpClientRequest queryParam(String name, UUID value);
165-
166-
/**
167-
* Add a Boolean query parameter
168-
*
169-
* @param name The name of the query parameter
170-
* @param value The value of the query parameter
171-
* @return The request being built
172-
*/
173-
HttpClientRequest queryParam(String name, Boolean value);
174-
175-
/**
176-
* Add a LocalDate query parameter
177-
*
178-
* @param name The name of the query parameter
179-
* @param value The value of the query parameter
180-
* @return The request being built
181-
*/
182-
HttpClientRequest queryParam(String name, LocalDate value);
183-
184-
/**
185-
* Add a LocalTime query parameter
186-
*
187-
* @param name The name of the query parameter
188-
* @param value The value of the query parameter
189-
* @return The request being built
190-
*/
191-
HttpClientRequest queryParam(String name, LocalTime value);
192-
193-
/**
194-
* Add a LocalDateTime query parameter
195-
*
196-
* @param name The name of the query parameter
197-
* @param value The value of the query parameter
152+
* @param value The value of the query parameter which can be null
198153
* @return The request being built
199154
*/
200-
HttpClientRequest queryParam(String name, LocalDateTime value);
155+
HttpClientRequest queryParam(String name, Object value);
201156

202157
/**
203-
* Add a Instant query parameter as ISO-8601 format.
158+
* Add a form parameter.
204159
*
205-
* @param name The name of the query parameter
206-
* @param value The value of the query parameter
160+
* @param name The form parameter name
161+
* @param value The form parameter value which can be null
207162
* @return The request being built
208163
*/
209-
HttpClientRequest queryParam(String name, Instant value);
164+
HttpClientRequest formParam(String name, String value);
210165

211166
/**
212167
* Add a form parameter.
213168
*
214169
* @param name The form parameter name
215-
* @param value The form parameter value
170+
* @param value The form parameter value which can be null
216171
* @return The request being built
217172
*/
218-
HttpClientRequest formParam(String name, String value);
219-
220-
/**
221-
* Add a Integer value form parameter.
222-
*/
223-
HttpClientRequest formParam(String name, Integer value);
224-
225-
/**
226-
* Add a Long value form parameter.
227-
*/
228-
HttpClientRequest formParam(String name, Long value);
229-
230-
/**
231-
* Add a Long value form parameter.
232-
*/
233-
HttpClientRequest formParam(String name, UUID value);
234-
235-
/**
236-
* Add a Boolean form parameter
237-
*/
238-
HttpClientRequest formParam(String name, Boolean value);
239-
240-
/**
241-
* Add a LocalDate form parametert
242-
*/
243-
HttpClientRequest formParam(String name, LocalDate value);
244-
245-
/**
246-
* Add a LocalTime form parameter
247-
*/
248-
HttpClientRequest formParam(String name, LocalTime value);
249-
250-
/**
251-
* Add a LocalDateTime form parameter
252-
*/
253-
HttpClientRequest formParam(String name, LocalDateTime value);
254-
255-
/**
256-
* Add a Instant form parameter as ISO-8601 format.
257-
*/
258-
HttpClientRequest formParam(String name, Instant value);
173+
HttpClientRequest formParam(String name, Object value);
259174

260175
/**
261176
* Set encoded body content.

0 commit comments

Comments
 (0)