summaryrefslogtreecommitdiffstats
path: root/README.md
diff options
context:
space:
mode:
authorShwetank Dave <shwetank.dave@amdocs.com>2017-05-08 15:36:26 -0400
committerShwetank Dave <shwetank.dave@amdocs.com>2017-05-08 15:37:11 -0400
commit8a665d85c9ea91f024e9a378779aad107550b832 (patch)
tree9b334e3d5dbc7a6cd518fae0872bac14792fbdfc /README.md
parent72744d5784f7227ace9bceac0f5576d5b18b544c (diff)
Initial OpenEcomp A&AI Rest Client commit.
Change-Id: Ic6949778061bdf141431c4b14ea2417da6aa1e57 Signed-off-by: Shwetank Dave <shwetank.dave@amdocs.com>
Diffstat (limited to 'README.md')
-rw-r--r--README.md60
1 files changed, 60 insertions, 0 deletions
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..d17a448
--- /dev/null
+++ b/README.md
@@ -0,0 +1,60 @@
+# Common REST Client Library
+
+This library provides a single client implementation to be used by micro services for communicating via its REST API.
+
+---
+
+## Usage
+In order to make the _REST Client_ library available to your microservice, include the following dependency in your service's pom.xml:
+
+ <!-- Common REST Client Library -->
+ <dependency>
+ <groupId>org.openecomp.aai</groupId>
+ <artifactId>rest-client</artifactId>
+ <version>1.0.0-SNAPSHOT</version>
+ </dependency>
+
+## Code Examples
+
+### Creating and Configuring a Client Instance
+In order to start talking to a service, you need to create a client instance and configure it. The _RestClient_ uses a fluent interface which allows it to be both instantiated and configured as in the following example:
+
+ // Create an instance of the Rest Client and configure it.
+ RestClient myClient = new RestClient()
+ .validateServerHostname(false)
+ .validateServerCertChain(true)
+ .clientCertFile("certificate_filename")
+ .trustStroe("trust_store_filename")
+ .connectTimeoutMs(1000)
+ .readTimeoutMs(1000)
+
+Note, that all of the above configuration parameters are optional and will be set to default values if they are not specified.
+
+### Querying The A&AI
+Once your service has a client instance, it can query the _Active & Available Inventory_ by specifying an HTTP endpoint, headers, and the expected response format:
+
+ MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
+ headers.put("Accept", Arrays.asList(new String[]{"application/json"}));
+ headers.put("X-FromAppId", Arrays.asList(new String[]{"APP-ID"}));
+ headers.put("X-TransactionId", Arrays.asList(new String[]{UUID.randomUUID().toString()}));
+
+ OperationResult result = myClient.queryActiveInventory("http://some/endpoint", headers, RestClient.RESPONSE_MIME_TYPE.JSON);
+
+ // You can also specify number of re-tries:
+ int retries = 3
+ OperationResult result = myClient.queryActiveInventory("http://some/endpoint", headers, RestClient.RESPONSE_MIME_TYPE.JSON, retries);
+
+
+The result of the query is returned as an _OperationResult_ object, which can be unpacked in the following manner:
+
+The standard HTTP result code received back from the _A&AI_ is accessible as follows:
+
+ int resultCode = getResultCode()
+
+The actual result payload is accessible in the following manner:
+
+ String resultPayload = result.getResult()
+
+Finally, in the event of a failure, a failure cause message will be populated and can be accessed as follows:
+
+ String failureCause = result.getFailureCause()