View Javadoc
1   package com.guinetik.examples;
2   
3   import com.guinetik.rr.RocketRest;
4   import com.guinetik.rr.RocketRestConfig;
5   
6   /**
7    * Example that demonstrates fetching data from multiple endpoints of a Fake-JSON API
8    */
9   public class FakeJsonApiExample implements Example {
10      
11      private static final String FAKE_API_BASE_URL = "https://fake-json-api.mock.beeceptor.com";
12      private static final String DUMMY_API_BASE_URL = "https://dummy-json.mock.beeceptor.com";
13      
14      @Override
15      public String getName() {
16          return "Fake-JSON API Example";
17      }
18      
19      @Override
20      public void run() {
21          // Create RocketRest client for fake-json-api
22          RocketRestConfig fakeApiConfig = RocketRestConfig.builder(FAKE_API_BASE_URL)
23                  .build();
24          RocketRest fakeApiClient = new RocketRest(fakeApiConfig);
25          
26          // Create RocketRest client for dummy-json-api
27          RocketRestConfig dummyApiConfig = RocketRestConfig.builder(DUMMY_API_BASE_URL)
28                  .build();
29          RocketRest dummyApiClient = new RocketRest(dummyApiConfig);
30          
31          try {
32              // Fetch and display users
33              System.out.println("\n=== USERS ===");
34              System.out.println("Fetching users from " + FAKE_API_BASE_URL + "/users");
35              String usersResponse = fakeApiClient.get("/users", String.class);
36              System.out.println("Response:");
37              System.out.println(usersResponse);
38              
39              // Fetch and display companies
40              System.out.println("\n=== COMPANIES ===");
41              System.out.println("Fetching companies from " + FAKE_API_BASE_URL + "/companies");
42              String companiesResponse = fakeApiClient.get("/companies", String.class);
43              System.out.println("Response:");
44              System.out.println(companiesResponse);
45              
46              // Fetch and display posts
47              System.out.println("\n=== POSTS ===");
48              System.out.println("Fetching posts from " + DUMMY_API_BASE_URL + "/posts");
49              String postsResponse = dummyApiClient.get("/posts", String.class);
50              System.out.println("Response:");
51              System.out.println(postsResponse);
52              
53              // Demonstrate usage with empty base URL (alternative approach)
54              System.out.println("\n=== ALTERNATIVE APPROACH ===");
55              RocketRestConfig emptyConfig = RocketRestConfig.builder("")
56                      .build();
57              RocketRest directClient = new RocketRest(emptyConfig);
58              
59              System.out.println("Fetching users with absolute URL");
60              String directResponse = directClient.get(FAKE_API_BASE_URL + "/users", String.class);
61              System.out.println("Response:");
62              System.out.println(directResponse);
63              directClient.shutdown();
64              
65          } catch (Exception e) {
66              System.err.println("Error fetching data: " + e.getMessage());
67              e.printStackTrace();
68          } finally {
69              // Always shutdown the clients to release resources
70              fakeApiClient.shutdown();
71              dummyApiClient.shutdown();
72          }
73      }
74  }