diff options
author | Shwetank Dave <shwetank.dave@amdocs.com> | 2017-05-08 15:36:26 -0400 |
---|---|---|
committer | Shwetank Dave <shwetank.dave@amdocs.com> | 2017-05-08 15:37:11 -0400 |
commit | 8a665d85c9ea91f024e9a378779aad107550b832 (patch) | |
tree | 9b334e3d5dbc7a6cd518fae0872bac14792fbdfc /README.md | |
parent | 72744d5784f7227ace9bceac0f5576d5b18b544c (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.md | 60 |
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() |