Skip to content

Commit 50c0dcb

Browse files
committed
Update the request object with sensible defaults and access methods, issue #13
1 parent 84d7508 commit 50c0dcb

File tree

5 files changed

+39
-38
lines changed

5 files changed

+39
-38
lines changed

README.md

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -77,13 +77,9 @@ try {
7777
`POST /your/api/{param}/call` with headers, query parameters and a request body.
7878

7979
```java
80-
Map<String,String> requestHeaders = new HashMap<String, String>();
81-
requestHeaders.put("Authorization", "Bearer YOUR_API_KEY");
82-
request.headers = requestHeaders;
83-
Map<String,String> queryParams = new HashMap<String, String>();
84-
queryParams.put("limit", "100");
85-
queryParams.put("offset", "0");
86-
request.queryParams = queryParams;
80+
request.getHeaders().put("Authorization", "Bearer YOUR_API_KEY");
81+
request.getQueryParams().put("limit", "100");
82+
request.getQueryParams().put("offset", "0");
8783
request.body ="{\"name\": \"My Request Body\"}";
8884
request.method = Method.POST;
8985
String param = "param";

examples/Example.java

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -18,19 +18,15 @@ public static void main(String[] args) throws IOException {
1818

1919
Request request = new Request();
2020
request.baseUri = "api.sendgrid.com";
21-
Map<String,String> requestHeaders = new HashMap<String, String>();
22-
requestHeaders.put("Authorization", "Bearer " + System.getenv("SENDGRID_API_KEY"));
23-
request.headers = requestHeaders;
21+
request.getHeaders().put("Authorization", "Bearer " + System.getenv("SENDGRID_API_KEY"));
2422

2523
Response response = new Response();
2624

2725
// GET Collection
2826
request.method = Method.GET;
2927
request.endpoint = "/v3/api_keys";
30-
Map<String,String> queryParams = new HashMap<String, String>();
31-
queryParams.put("limit", "100");
32-
queryParams.put("offset", "0");
33-
request.queryParams = queryParams;
28+
request.getQueryParams().put("limit", "100");
29+
request.getQueryParams().put("offset", "0");
3430
try {
3531
response = client.api(request);
3632
System.out.println(response.statusCode);
@@ -39,7 +35,7 @@ public static void main(String[] args) throws IOException {
3935
} catch (IOException ex) {
4036
throw ex;
4137
}
42-
request.queryParams = null;
38+
request.getQueryParams().clear();
4339

4440
// POST
4541
request.method = Method.POST;

src/main/java/com/sendgrid/Client.java

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -148,14 +148,14 @@ public Response get(Request request) throws URISyntaxException, IOException {
148148
HttpGet httpGet = null;
149149

150150
try {
151-
uri = buildUri(request.baseUri, request.endpoint, request.queryParams);
151+
uri = buildUri(request.baseUri, request.endpoint, request.getQueryParams());
152152
httpGet = new HttpGet(uri.toString());
153153
} catch (URISyntaxException ex) {
154154
throw ex;
155155
}
156156

157-
if (request.headers != null) {
158-
for (Map.Entry<String, String> entry : request.headers.entrySet()) {
157+
if (request.getHeaders() != null) {
158+
for (Map.Entry<String, String> entry : request.getHeaders().entrySet()) {
159159
httpGet.setHeader(entry.getKey(), entry.getValue());
160160
}
161161
}
@@ -171,14 +171,14 @@ public Response post(Request request) throws URISyntaxException, IOException {
171171
HttpPost httpPost = null;
172172

173173
try {
174-
uri = buildUri(request.baseUri, request.endpoint, request.queryParams);
174+
uri = buildUri(request.baseUri, request.endpoint, request.getQueryParams());
175175
httpPost = new HttpPost(uri.toString());
176176
} catch (URISyntaxException ex) {
177177
throw ex;
178178
}
179179

180-
if (request.headers != null) {
181-
for (Map.Entry<String, String> entry : request.headers.entrySet()) {
180+
if (request.getHeaders() != null) {
181+
for (Map.Entry<String, String> entry : request.getHeaders().entrySet()) {
182182
httpPost.setHeader(entry.getKey(), entry.getValue());
183183
}
184184
}
@@ -200,14 +200,14 @@ public Response patch(Request request) throws URISyntaxException, IOException {
200200
HttpPatch httpPatch = null;
201201

202202
try {
203-
uri = buildUri(request.baseUri, request.endpoint, request.queryParams);
203+
uri = buildUri(request.baseUri, request.endpoint, request.getQueryParams());
204204
httpPatch = new HttpPatch(uri.toString());
205205
} catch (URISyntaxException ex) {
206206
throw ex;
207207
}
208208

209-
if (request.headers != null) {
210-
for (Map.Entry<String, String> entry : request.headers.entrySet()) {
209+
if (request.getHeaders() != null) {
210+
for (Map.Entry<String, String> entry : request.getHeaders().entrySet()) {
211211
httpPatch.setHeader(entry.getKey(), entry.getValue());
212212
}
213213
}
@@ -228,14 +228,14 @@ public Response put(Request request) throws URISyntaxException, IOException {
228228
HttpPut httpPut = null;
229229

230230
try {
231-
uri = buildUri(request.baseUri, request.endpoint, request.queryParams);
231+
uri = buildUri(request.baseUri, request.endpoint, request.getQueryParams());
232232
httpPut = new HttpPut(uri.toString());
233233
} catch (URISyntaxException ex) {
234234
throw ex;
235235
}
236236

237-
if (request.headers != null) {
238-
for (Map.Entry<String, String> entry : request.headers.entrySet()) {
237+
if (request.getHeaders() != null) {
238+
for (Map.Entry<String, String> entry : request.getHeaders().entrySet()) {
239239
httpPut.setHeader(entry.getKey(), entry.getValue());
240240
}
241241
}
@@ -256,14 +256,14 @@ public Response delete(Request request) throws URISyntaxException, IOException {
256256
HttpDeleteWithBody httpDelete = null;
257257

258258
try {
259-
uri = buildUri(request.baseUri, request.endpoint, request.queryParams);
259+
uri = buildUri(request.baseUri, request.endpoint, request.getQueryParams());
260260
httpDelete = new HttpDeleteWithBody(uri.toString());
261261
} catch (URISyntaxException ex) {
262262
throw ex;
263263
}
264264

265-
if (request.headers != null) {
266-
for (Map.Entry<String, String> entry : request.headers.entrySet()) {
265+
if (request.getHeaders() != null) {
266+
for (Map.Entry<String, String> entry : request.getHeaders().entrySet()) {
267267
httpDelete.setHeader(entry.getKey(), entry.getValue());
268268
}
269269
}
@@ -287,7 +287,7 @@ private Response executeApiCall(HttpRequestBase httpPost) throws IOException {
287287
//throwing IOException here to not break API behavior.
288288
throw new IOException("Request returned status Code "+statusLine.getStatusCode()+"Body:"+(response!=null?response.body:null));
289289
}
290-
290+
291291
} finally {
292292
if (serverResponse != null) {
293293
serverResponse.close();

src/main/java/com/sendgrid/Request.java

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.sendgrid;
22

33
import java.util.Map;
4+
import java.util.HashMap;
45

56
/**
67
* Class Response provides a standard interface to an API's HTTP request.
@@ -10,10 +11,12 @@ public class Request {
1011
public String baseUri;
1112
public String endpoint;
1213
public String body;
13-
public Map<String,String> headers;
14-
public Map<String,String> queryParams;
14+
private final Map<String, String> headers;
15+
private final Map<String, String> queryParams;
1516

1617
public Request() {
18+
this.headers = new HashMap<String, String>();
19+
this.queryParams = new HashMap<String, String>();
1720
this.reset();
1821
}
1922

@@ -25,7 +28,15 @@ public void reset() {
2528
this.baseUri = "";
2629
this.endpoint = "";
2730
this.body = "";
28-
this.headers = null;
29-
this.queryParams = null;
31+
this.headers.clear();
32+
this.queryParams.clear();
33+
}
34+
35+
public Map<String, String> getHeaders() {
36+
return this.headers;
37+
}
38+
39+
public Map<String, String> getQueryParams() {
40+
return this.queryParams;
3041
}
3142
}

src/test/java/com/sendgrid/ClientTest.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -129,9 +129,7 @@ public void testMethod(Method method, int statusCode) {
129129
request.body = "{\"test\":\"testResult\"}";
130130
}
131131
request.endpoint = "/test";
132-
Map<String,String> requestHeaders = new HashMap<String, String>();
133-
requestHeaders.put("Authorization", "Bearer XXXX");
134-
request.headers = requestHeaders;
132+
request.getHeaders().put("Authorization", "Bearer XXXX");
135133
Client client = new Client(httpClient);
136134
testResponse = client.get(request);
137135
} catch (URISyntaxException | IOException ex) {

0 commit comments

Comments
 (0)