diff --git a/docs/modules/ROOT/partials/rest-openapi-sink-description.adoc b/docs/modules/ROOT/partials/rest-openapi-sink-description.adoc index cd9189308..6d7bf8ba7 100644 --- a/docs/modules/ROOT/partials/rest-openapi-sink-description.adoc +++ b/docs/modules/ROOT/partials/rest-openapi-sink-description.adoc @@ -12,9 +12,13 @@ Uses OpenAPI specifications to understand API endpoints, request/response format Supports various HTTP operations (GET, POST, PUT, DELETE, etc.) as defined in the OpenAPI specification, providing comprehensive REST API integration capabilities. +=== Host and Base Path Configuration + +The host and base path for the REST service can be configured to override the default values found in the OpenAPI specification. This is useful for production environments where the specification may contain default values like localhost:8080 that need to be replaced with the actual service endpoint. + === Schema Validation -OpenAPI specifications include schema definitions that can be used for request and response validation, ensuring data integrity and API compliance. +OpenAPI specifications include schema definitions that can be used for request and response validation, ensuring data integrity and API compliance. Client request validation can be enabled to check if outgoing requests conform to the OpenAPI specification before they are sent. === Documentation-Driven Development diff --git a/kamelets/rest-openapi-sink.kamelet.yaml b/kamelets/rest-openapi-sink.kamelet.yaml index 6c11c8f93..b0054948a 100644 --- a/kamelets/rest-openapi-sink.kamelet.yaml +++ b/kamelets/rest-openapi-sink.kamelet.yaml @@ -46,6 +46,21 @@ spec: title: Operation ID description: The operation to call. type: string + host: + title: Host + description: The host to use for calling the REST service. Overrides the value found in the OpenAPI specification. The format is https://hostname:port. + type: string + example: "https://api.example.com:443" + basePath: + title: Base Path + description: The API base path. Overrides the value present in the OpenAPI specification. + type: string + example: "/v3" + clientRequestValidation: + title: Client Request Validation + description: Whether to enable validation of the client request to check if the incoming request is valid according to the OpenAPI specification. + type: boolean + default: false dependencies: - "camel:rest-openapi" - "camel:http" @@ -55,4 +70,9 @@ spec: from: uri: kamelet:source steps: - - to: "rest-openapi:{{specification}}#{{operation}}" + - to: + uri: "rest-openapi:{{specification}}#{{operation}}" + parameters: + host: "{{?host}}" + basePath: "{{?basePath}}" + clientRequestValidation: "{{clientRequestValidation}}" diff --git a/library/camel-kamelets/src/main/resources/kamelets/rest-openapi-sink.kamelet.yaml b/library/camel-kamelets/src/main/resources/kamelets/rest-openapi-sink.kamelet.yaml index 6c11c8f93..b0054948a 100644 --- a/library/camel-kamelets/src/main/resources/kamelets/rest-openapi-sink.kamelet.yaml +++ b/library/camel-kamelets/src/main/resources/kamelets/rest-openapi-sink.kamelet.yaml @@ -46,6 +46,21 @@ spec: title: Operation ID description: The operation to call. type: string + host: + title: Host + description: The host to use for calling the REST service. Overrides the value found in the OpenAPI specification. The format is https://hostname:port. + type: string + example: "https://api.example.com:443" + basePath: + title: Base Path + description: The API base path. Overrides the value present in the OpenAPI specification. + type: string + example: "/v3" + clientRequestValidation: + title: Client Request Validation + description: Whether to enable validation of the client request to check if the incoming request is valid according to the OpenAPI specification. + type: boolean + default: false dependencies: - "camel:rest-openapi" - "camel:http" @@ -55,4 +70,9 @@ spec: from: uri: kamelet:source steps: - - to: "rest-openapi:{{specification}}#{{operation}}" + - to: + uri: "rest-openapi:{{specification}}#{{operation}}" + parameters: + host: "{{?host}}" + basePath: "{{?basePath}}" + clientRequestValidation: "{{clientRequestValidation}}"