Class OciRestApi
java.lang.Object
io.helidon.integrations.common.rest.RestApiBase
io.helidon.integrations.oci.connect.OciRestApi
- All Implemented Interfaces:
RestApi
OCI specific REST API.
This class uses HTTP Signatures to sign requests.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classFluent API builder forOciRestApi.static enumHow to connect to OCI. -
Method Summary
Modifier and TypeMethodDescriptionstatic OciRestApi.Builderbuilder()A new builder to configure instances.static OciRestApicreate()Create API with default configuration.static OciRestApiCreate OCI REST API from configuration.protected ThrowablereadError(String path, ApiRequest<?> request, Http.RequestMethod method, String requestId, WebClientResponse response) Read error with no entity (content length set to 0).protected ThrowablereadError(String path, ApiRequest<?> request, Http.RequestMethod method, String requestId, WebClientResponse response, JsonObject json) Read error with a JSON entity.protected ThrowablereadError(String path, ApiRequest<?> request, Http.RequestMethod method, String requestId, WebClientResponse response, String entity) Read error with an entity that failed to be parsed into a JSON object.protected ThrowablereadErrorFailedEntity(String path, ApiRequest<?> request, Http.RequestMethod method, String requestId, WebClientResponse response, Throwable it) Read error information when we failed to read resposen entity.protected Supplier<Single<WebClientResponse>>requestBytesPayload(String path, ApiRequest<?> request, Http.RequestMethod method, String requestId, WebClientRequestBuilder requestBuilder, Flow.Publisher<DataChunk> publisher) Create a supplier for a response with publisher request.protected Supplier<Single<WebClientResponse>>requestJsonPayload(String path, ApiRequest<?> request, Http.RequestMethod method, String requestId, WebClientRequestBuilder requestBuilder, JsonObject jsonObject) Create a supplier for a response with JSON request.protected Supplier<Single<WebClientResponse>>responseSupplier(Http.RequestMethod method, String path, ApiRequest<?> request, String requestId) Create a response supplier from the request.protected Single<WebClientRequestBuilder>updateRequestBuilder(WebClientRequestBuilder requestBuilder, String path, ApiRequest<?> request, Http.RequestMethod method, String requestId) Update request builder with no request payload.protected Single<WebClientRequestBuilder>updateRequestBuilderBytesPayload(WebClientRequestBuilder requestBuilder, String path, ApiRequest<?> request, Http.RequestMethod method, String requestId) Update request builder with publisher request payload.protected Single<WebClientRequestBuilder>updateRequestBuilderCommon(WebClientRequestBuilder requestBuilder, String path, ApiRequest<?> request, Http.RequestMethod method, String requestId) Update request builder used by all default implementation inRestApiBase.Methods inherited from class io.helidon.integrations.common.rest.RestApiBase
addHeaders, addQueryParams, emptyResponse, errorResponse, ftHandler, handleBytesResponse, handleJsonResponse, handleOptionalJsonResponse, handlePublisherResponse, handleResponse, invoke, invokeBytesRequest, invokeBytesResponse, invokeOptional, invokePublisherResponse, invokeWithResponse, isEntityExpected, isSuccess, jsonBuilderFactory, jsonOkResponse, jsonReaderFactory, jsonWriterFactory, noEntityOkResponse, requestId, requestPayload, updateRequestBuilder, webClient
-
Method Details
-
builder
A new builder to configure instances.- Returns:
- a new builder
-
create
Create API with default configuration.- Returns:
- a new REST API with default configuration
-
create
Create OCI REST API from configuration.- Parameters:
config- configuration- Returns:
- a new REST API configured from config
-
responseSupplier
protected Supplier<Single<WebClientResponse>> responseSupplier(Http.RequestMethod method, String path, ApiRequest<?> request, String requestId) Description copied from class:RestApiBaseCreate a response supplier from the request. This method checks if there is a payload, and prepares the supplier based on this information.- Overrides:
responseSupplierin classRestApiBase- Parameters:
method- HTTP method to invokepath- path to invokerequest- request that may contain a JSON entityrequestId- request ID to use for this request- Returns:
- supplier of response that is used with fault tolerance
-
requestBytesPayload
protected Supplier<Single<WebClientResponse>> requestBytesPayload(String path, ApiRequest<?> request, Http.RequestMethod method, String requestId, WebClientRequestBuilder requestBuilder, Flow.Publisher<DataChunk> publisher) Description copied from class:RestApiBaseCreate a supplier for a response with publisher request. Defaults to "() -> clientRequest.submit(publisher)". Also configures content type and accept headers.- Overrides:
requestBytesPayloadin classRestApiBase- Parameters:
path- path requestedrequest- API requestmethod- HTTP methodrequestId- ID of this requestrequestBuilder-WebClientrequest builderpublisher- publisher to be used as request entity- Returns:
- supplier of a web client response
-
readErrorFailedEntity
protected Throwable readErrorFailedEntity(String path, ApiRequest<?> request, Http.RequestMethod method, String requestId, WebClientResponse response, Throwable it) Description copied from class:RestApiBaseRead error information when we failed to read resposen entity.- Overrides:
readErrorFailedEntityin classRestApiBase- Parameters:
path- requested pathrequest- original requestmethod- HTTP methodrequestId- ID of the requestresponse- actual response where we do not expect an entityit- throwable that caused this problem (such as parsing exception)- Returns:
- throwable to be used in response
-
readError
protected Throwable readError(String path, ApiRequest<?> request, Http.RequestMethod method, String requestId, WebClientResponse response) Description copied from class:RestApiBaseRead error with no entity (content length set to 0).- Overrides:
readErrorin classRestApiBase- Parameters:
path- requested pathrequest- original API requestmethod- HTTP methodrequestId- request IDresponse- web client response with entity consumed- Returns:
- a throwable to be used in response
-
readError
protected Throwable readError(String path, ApiRequest<?> request, Http.RequestMethod method, String requestId, WebClientResponse response, String entity) Description copied from class:RestApiBaseRead error with an entity that failed to be parsed into a JSON object.- Overrides:
readErrorin classRestApiBase- Parameters:
path- requested pathrequest- original API requestmethod- HTTP methodrequestId- request IDresponse- web client response with entity consumedentity- entity as a string- Returns:
- a throwable to be used in response
-
readError
protected Throwable readError(String path, ApiRequest<?> request, Http.RequestMethod method, String requestId, WebClientResponse response, JsonObject json) Description copied from class:RestApiBaseRead error with a JSON entity.- Overrides:
readErrorin classRestApiBase- Parameters:
path- requested pathrequest- original API requestmethod- HTTP methodrequestId- request IDresponse- web client response with entity consumedjson- entity as a JSON object- Returns:
- a throwable to be used in response
-
updateRequestBuilder
protected Single<WebClientRequestBuilder> updateRequestBuilder(WebClientRequestBuilder requestBuilder, String path, ApiRequest<?> request, Http.RequestMethod method, String requestId) Description copied from class:RestApiBaseUpdate request builder with no request payload. Default implementation does nothing.- Overrides:
updateRequestBuilderin classRestApiBase- Parameters:
requestBuilder- current request builderpath- path to be executedrequest- API requestmethod- methodrequestId- request ID- Returns:
- updated builder
-
updateRequestBuilderBytesPayload
protected Single<WebClientRequestBuilder> updateRequestBuilderBytesPayload(WebClientRequestBuilder requestBuilder, String path, ApiRequest<?> request, Http.RequestMethod method, String requestId) Description copied from class:RestApiBaseUpdate request builder with publisher request payload. Default implementation does nothing.- Overrides:
updateRequestBuilderBytesPayloadin classRestApiBase- Parameters:
requestBuilder- current request builderpath- path to be executedrequest- API requestmethod- methodrequestId- request ID- Returns:
- updated builder
-
requestJsonPayload
protected Supplier<Single<WebClientResponse>> requestJsonPayload(String path, ApiRequest<?> request, Http.RequestMethod method, String requestId, WebClientRequestBuilder requestBuilder, JsonObject jsonObject) Description copied from class:RestApiBaseCreate a supplier for a response with JSON request. Defaults to "() -> clientRequest.submit(jsonObject)". Also configures content type and accept headers.- Overrides:
requestJsonPayloadin classRestApiBase- Parameters:
path- path requestedrequest- API requestmethod- HTTP methodrequestId- ID of this requestrequestBuilder-WebClientrequest builderjsonObject- JSON object that should be sent as a request entity- Returns:
- supplier of a web client response
-
updateRequestBuilderCommon
protected Single<WebClientRequestBuilder> updateRequestBuilderCommon(WebClientRequestBuilder requestBuilder, String path, ApiRequest<?> request, Http.RequestMethod method, String requestId) Description copied from class:RestApiBaseUpdate request builder used by all default implementation inRestApiBase.- Overrides:
updateRequestBuilderCommonin classRestApiBase- Parameters:
requestBuilder- current request builderpath- path to be executedrequest- API requestmethod- methodrequestId- request ID- Returns:
- updated builder
-