REST Client with Basic Authentication
Use case
This documentation outlines the process of creating a REST client that interacts with a Customer service requiring Basic Authentication via a username and password.
Design
The solution consists of two main components:
-
REST Client Route: This route contains the logic for calling the REST service. It handles the HTTP request, manages authentication headers, and processes the response from the Customer service,
client.camel.yaml
-
Example Usage: An additional route demonstrates how to invoke the REST client from another route, ensuring seamless integration and reuse.
YAML
client.camel.yaml
- route:
id: route-rest-client
description: Rest Client
nodePrefixId: route-6cb
from:
id: from-4a52
uri: direct
parameters:
name: rest-client
steps:
- setHeader:
id: setHeader-20b4
description: Set Authorization header
name: Authorization
expression:
groovy:
id: groovy-5740
expression: >-
def username = "Aladdin"
def password = "OpenSesame"
return "Basic " +
Base64.getEncoder().encodeToString("$username:$password".bytes)
- setHeader:
id: setHeader-b4dd
description: Set Content-Type header
name: Content-Type
expression:
constant:
id: constant-ccbf
expression: application/json
- setHeader:
id: setHeader-36d7
description: Set Accept header
name: Accept
expression:
constant:
id: constant-5f78
expression: application/json
- log:
id: log-b206
message: ${headers}
- to:
id: to-d080
disabled: false
uri: vertx-http
parameters:
httpUri: http://localhost:8082/customer
httpMethod: GET
- log:
id: log-fbd4
message: "${body} "