Skip to content

Commit a389297

Browse files
updates readme.md according to the ClientOptions change
1 parent 7ec025d commit a389297

1 file changed

Lines changed: 72 additions & 29 deletions

File tree

README.md

Lines changed: 72 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ Add the following in your `pom.xml`
5959
<dependency>
6060
<groupId>com.mailjet</groupId>
6161
<artifactId>mailjet-client</artifactId>
62-
<version>4.5.0</version>
62+
<version>4.6.0</version>
6363
</dependency>
6464
</dependencies>
6565
```
@@ -78,7 +78,14 @@ export MJ_APIKEY_PRIVATE='your API secret'
7878
Initialize your [Mailjet][mailjet] Client:
7979

8080
```java
81-
MailjetClient client = new MailjetClient(System.getenv("MJ_APIKEY_PUBLIC"), System.getenv("MJ_APIKEY_PRIVATE"));
81+
82+
ClientOptions options = ClientOptions.builder()
83+
.apiKey(System.getenv("MJ_APIKEY_PUBLIC"))
84+
.apiSecretKey(System.getenv("MJ_APIKEY_PRIVATE"))
85+
.build();
86+
87+
MailjetClient client = new MailjetClient(options);
88+
8289
```
8390

8491
## Make your first call
@@ -101,10 +108,16 @@ public class MyClass {
101108
* Run:
102109
*/
103110
public static void main(String[] args) throws MailjetException {
104-
MailjetClient client;
105111
MailjetRequest request;
106112
MailjetResponse response;
107-
client = new MailjetClient(System.getenv("MJ_APIKEY_PUBLIC"), System.getenv("MJ_APIKEY_PRIVATE"), new ClientOptions(ApiVersion.V3));
113+
114+
ClientOptions options = ClientOptions.builder()
115+
.apiKey(System.getenv("MJ_APIKEY_PUBLIC"))
116+
.apiSecretKey(System.getenv("MJ_APIKEY_PRIVATE"))
117+
.build();
118+
119+
MailjetClient client = new MailjetClient(options);
120+
108121
request = new MailjetRequest(Emailv31.resource)
109122
.property(Emailv31.MESSAGES, new JSONArray()
110123
.put(new JSONObject()
@@ -130,15 +143,40 @@ public class MyClass {
130143
To instantiate the library you can use the following constructor:
131144

132145
```java
133-
MailjetClient client = new MailjetClient(System.getenv("MJ_APIKEY_PUBLIC"), System.getenv("MJ_APIKEY_PRIVATE"), new ClientOptions(ApiVersion.V3, "https://api.us.mailjet.com"));
134-
```
146+
ClientOptions options = ClientOptions.builder()
147+
.apiKey(System.getenv("MJ_APIKEY_PUBLIC"))
148+
.apiSecretKey(System.getenv("MJ_APIKEY_PRIVATE"))
149+
.build();
135150

136-
- `$MJ_APIKEY_PUBLIC` : public Mailjet API key
137-
- `$MJ_APIKEY_PRIVATE` : private Mailjet API key
138-
- `ClientOptions` : associative array describing the connection options (see Options bellow for full list)
151+
MailjetClient client = new MailjetClient(options);
152+
```
139153

140154
### Options
141155

156+
#### Set connection timeouts and log requests
157+
158+
You can pass customly configured HttpClient to the Mailjet client to get request logs or custom timeouts:
159+
160+
```java
161+
HttpLoggingInterceptor logging = new HttpLoggingInterceptor();
162+
logging.setLevel(Level.BASIC);
163+
OkHttpClient customHttpClient = new OkHttpClient.Builder()
164+
.connectTimeout(60, TimeUnit.SECONDS)
165+
.readTimeout(60, TimeUnit.SECONDS)
166+
.writeTimeout(60, TimeUnit.SECONDS)
167+
.addInterceptor(logging)
168+
.build();
169+
170+
ClientOptions options = ClientOptions.builder()
171+
.apiKey(System.getenv("MJ_APIKEY_PUBLIC"))
172+
.apiSecretKey(System.getenv("MJ_APIKEY_PRIVATE"))
173+
.okHttpClient(customHttpClient)
174+
.build();
175+
176+
```
177+
178+
for more configuration options, please, refer to the [OkHttpClient documentation](https://square.github.io/okhttp/)
179+
142180
#### API Versioning
143181

144182
The Mailjet API is spread among three distinct versions:
@@ -147,13 +185,8 @@ The Mailjet API is spread among three distinct versions:
147185
- `v3.1` - Email Send API v3.1, which is the latest version of our Send API
148186
- `v4` - SMS API
149187

150-
Since most Email API endpoints are located under `v3`, it is set as the default one and does not need to be specified when making your request. For the others you need to specify the version using `ClientOptions`. For example, if using Send API `v3.1`:
151-
152-
``` java
188+
You can skip version specification during the request, as MailJet client will determine the needed API version by himself.
153189

154-
MailjetClient client = new MailjetClient(System.getenv("MJ_APIKEY_PUBLIC"), System.getenv("MJ_APIKEY_PRIVATE"), new ClientOptions(ApiVersion.V3_1));
155-
156-
```
157190

158191
For additional information refer to our [API Reference](https://dev.preprod.mailjet.com/reference/overview/versioning/).
159192

@@ -162,7 +195,13 @@ For additional information refer to our [API Reference](https://dev.preprod.mail
162195
The default base domain name for the Mailjet API is api.mailjet.com. You can modify this base URL by adding a different URL in `ClientOptions`:
163196

164197
```java
165-
MailjetClient client = new MailjetClient(System.getenv("MJ_APIKEY_PUBLIC"), System.getenv("MJ_APIKEY_PRIVATE"), new ClientOptions(ApiVersion.V3, "https://api.us.mailjet.com"));
198+
ClientOptions options = ClientOptions.builder()
199+
.baseUrl("https://api.us.mailjet.com")
200+
.apiKey(System.getenv("MJ_APIKEY_PUBLIC"))
201+
.apiSecretKey(System.getenv("MJ_APIKEY_PRIVATE"))
202+
.build();
203+
204+
MailjetClient client = new MailjetClient(options);
166205
```
167206

168207
If your account has been moved to Mailjet's **US architecture**, the URL you need to add is `https://api.us.mailjet.com`.
@@ -217,7 +256,7 @@ public class MyClass {
217256
MailjetClient client;
218257
MailjetRequest request;
219258
MailjetResponse response;
220-
client = new MailjetClient(System.getenv("MJ_APIKEY_PUBLIC"), System.getenv("MJ_APIKEY_PRIVATE"));
259+
client = new MailjetClient(ClientOptions.builder().apiKey(System.getenv("MJ_APIKEY_PUBLIC")).apiSecretKey(System.getenv("MJ_APIKEY_PRIVATE")).build());
221260
request = new MailjetRequest(Contact.resource)
222261
.property(Contact.EMAIL, "Mister@mailjet.com");
223262
response = client.post(request);
@@ -250,7 +289,7 @@ public class MyClass {
250289
MailjetClient client;
251290
MailjetRequest request;
252291
MailjetResponse response;
253-
client = new MailjetClient(System.getenv("MJ_APIKEY_PUBLIC"), System.getenv("MJ_APIKEY_PRIVATE"));
292+
client = new MailjetClient(ClientOptions.builder().apiKey(System.getenv("MJ_APIKEY_PUBLIC")).apiSecretKey(System.getenv("MJ_APIKEY_PRIVATE")).build());
254293
request = new MailjetRequest(ContactManagecontactslists.resource, ID)
255294
.property(ContactManagecontactslists.CONTACTSLISTS, new JSONArray()
256295
.put(new JSONObject()
@@ -291,7 +330,8 @@ public class MyClass {
291330
MailjetClient client;
292331
MailjetRequest request;
293332
MailjetResponse response;
294-
client = new MailjetClient(System.getenv("MJ_APIKEY_PUBLIC"), System.getenv("MJ_APIKEY_PRIVATE"));
333+
client = new MailjetClient(ClientOptions.builder().apiKey(System.getenv("MJ_APIKEY_PUBLIC")).apiSecretKey(System.getenv("MJ_APIKEY_PRIVATE")).build());
334+
295335
request = new MailjetRequest(Contact.resource);
296336
response = client.get(request);
297337
System.out.println(response.getStatus());
@@ -323,7 +363,8 @@ public class MyClass {
323363
MailjetClient client;
324364
MailjetRequest request;
325365
MailjetResponse response;
326-
client = new MailjetClient(System.getenv("MJ_APIKEY_PUBLIC"), System.getenv("MJ_APIKEY_PRIVATE"));
366+
client = new MailjetClient(ClientOptions.builder().apiKey(System.getenv("MJ_APIKEY_PUBLIC")).apiSecretKey(System.getenv("MJ_APIKEY_PRIVATE")).build());
367+
327368
request = new MailjetRequest(Contact.resource)
328369
.filter(Contact.ISEXCLUDEDFROMCAMPAIGNS, "false");
329370
response = client.get(request);
@@ -357,7 +398,8 @@ public class MyClass {
357398
MailjetClient client;
358399
MailjetRequest request;
359400
MailjetResponse response;
360-
client = new MailjetClient(System.getenv("MJ_APIKEY_PUBLIC"), System.getenv("MJ_APIKEY_PRIVATE"));
401+
client = new MailjetClient(ClientOptions.builder().apiKey(System.getenv("MJ_APIKEY_PUBLIC")).apiSecretKey(System.getenv("MJ_APIKEY_PRIVATE")).build());
402+
361403
request = new MailjetRequest(Contact.resource, ID);
362404
response = client.get(request);
363405
System.out.println(response.getStatus());
@@ -391,7 +433,8 @@ public class MyClass {
391433
MailjetClient client;
392434
MailjetRequest request;
393435
MailjetResponse response;
394-
client = new MailjetClient(System.getenv("MJ_APIKEY_PUBLIC"), System.getenv("MJ_APIKEY_PRIVATE"));
436+
client = new MailjetClient(ClientOptions.builder().apiKey(System.getenv("MJ_APIKEY_PUBLIC")).apiSecretKey(System.getenv("MJ_APIKEY_PRIVATE")).build());
437+
395438
request = new MailjetRequest(Contactdata.resource, ID)
396439
.property(Contactdata.DATA, new JSONArray()
397440
.put(new JSONObject()
@@ -431,7 +474,8 @@ public class MyClass {
431474
MailjetClient client;
432475
MailjetRequest request;
433476
MailjetResponse response;
434-
client = new MailjetClient(System.getenv("MJ_APIKEY_PUBLIC"), System.getenv("MJ_APIKEY_PRIVATE"));
477+
client = new MailjetClient(ClientOptions.builder().apiKey(System.getenv("MJ_APIKEY_PUBLIC")).apiSecretKey(System.getenv("MJ_APIKEY_PRIVATE")).build());
478+
435479
request = new MailjetRequest(Template.resource, ID);
436480
response = client.delete(request);
437481
System.out.println(response.getStatus());
@@ -444,10 +488,10 @@ public class MyClass {
444488

445489
### Token Authentication
446490

447-
Authentication for the SMS API endpoints is done using a bearer token. The bearer token is generated in the [SMS section](https://app.mailjet.com/sms) of your Mailjet account.
491+
Authentication for the SMS API endpoints is done using a bearer token. The bearer token generated in the [SMS section](https://app.mailjet.com/sms) of your Mailjet account.
448492

449493
```java
450-
MailjetClient client = new MailjetClient(System.getenv("MJ_TOKEN"), new ClientOptions(ApiVersion.V4));
494+
client = new MailjetClient(ClientOptions.builder().apiAccessToken(System.getenv("MJ_TOKEN")).build());
451495
```
452496

453497
### Example request
@@ -460,9 +504,8 @@ MailjetClient client;
460504
MailjetRequest request;
461505
MailjetResponse response;
462506

463-
// Note how we set the version to v4 using ClientOptions and use an already generated token
464-
MailjetClient client = new MailjetClient(System.getenv("MJ_TOKEN"), new ClientOptions(ApiVersion.V4));
465-
507+
// Note how we use an already generated token
508+
MailjetClient client = new MailjetClient(ClientOptions.builder().apiAccessToken(System.getenv("MJ_TOKEN")).build());
466509
request = new MailjetRequest(Send.resource)
467510
.property(Send.From, "MJPilot")
468511
.property(Send.To, "+33600000000")
@@ -488,7 +531,7 @@ public class MyClass {
488531
MailjetClient client;
489532
MailjetRequest request;
490533
MailjetResponse response;
491-
client = new MailjetClient(System.getenv("MJ_TOKEN"), new ClientOptions(ApiVersion.V4));
534+
client = new MailjetClient(ClientOptions.builder().apiAccessToken(System.getenv("MJ_TOKEN")).build());
492535
request = new MailjetRequest(SmsSend.resource)
493536
.property(SmsSend.FROM, "MJPilot")
494537
.property(SmsSend.TO, "+33600000000")

0 commit comments

Comments
 (0)