You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Handling errors in this SDK should largely match your expectations. All operations return a response object or raise an exception.
792
793
793
-
By default, an API error will throw a `models/errors/SDKError` exception. When custom error responses are specified for an operation, the SDK may also throw their associated exception. You can refer to respective *Errors* tables in SDK docs for more details on possible exception types for each operation. For example, the `createConnectSession` method throws the following exceptions:
|`body()`|`byte[]`| HTTP body as a byte array. Can be empty array if no body is returned. |
803
+
|`bodyAsString()`|`String`| HTTP body as a UTF-8 string. Can be empty string if no body is returned. |
804
+
|`rawResponse()`|`HttpResponse<?>`| Raw HTTP response (body already read and not available for re-read) |
811
805
806
+
### Example
812
807
```java
813
808
packagehello.world;
814
809
@@ -860,6 +855,38 @@ public class Application {
860
855
}
861
856
}
862
857
```
858
+
859
+
### Error Classes
860
+
**Primary errors:**
861
+
*[`StackOneError`](./src/main/java/models/errors/StackOneError.java): The base class for HTTP error responses.
862
+
*[`com.stackone.stackone_client_java.models.errors.BadRequestResponse`](./src/main/java/models/errors/com.stackone.stackone_client_java.models.errors.BadRequestResponse.java): Invalid request. Status code `400`.
863
+
*[`com.stackone.stackone_client_java.models.errors.UnauthorizedResponse`](./src/main/java/models/errors/com.stackone.stackone_client_java.models.errors.UnauthorizedResponse.java): Unauthorized access. Status code `401`.
864
+
*[`com.stackone.stackone_client_java.models.errors.ForbiddenResponse`](./src/main/java/models/errors/com.stackone.stackone_client_java.models.errors.ForbiddenResponse.java): Forbidden. Status code `403`.
865
+
*[`com.stackone.stackone_client_java.models.errors.NotFoundResponse`](./src/main/java/models/errors/com.stackone.stackone_client_java.models.errors.NotFoundResponse.java): Resource not found. Status code `404`.
866
+
*[`com.stackone.stackone_client_java.models.errors.RequestTimedOutResponse`](./src/main/java/models/errors/com.stackone.stackone_client_java.models.errors.RequestTimedOutResponse.java): The request has timed out. Status code `408`.
867
+
*[`com.stackone.stackone_client_java.models.errors.ConflictResponse`](./src/main/java/models/errors/com.stackone.stackone_client_java.models.errors.ConflictResponse.java): Conflict with current state. Status code `409`.
868
+
*[`com.stackone.stackone_client_java.models.errors.UnprocessableEntityResponse`](./src/main/java/models/errors/com.stackone.stackone_client_java.models.errors.UnprocessableEntityResponse.java): Validation error. Status code `422`.
869
+
*[`com.stackone.stackone_client_java.models.errors.TooManyRequestsResponse`](./src/main/java/models/errors/com.stackone.stackone_client_java.models.errors.TooManyRequestsResponse.java): Too many requests. Status code `429`.
870
+
*[`com.stackone.stackone_client_java.models.errors.InternalServerErrorResponse`](./src/main/java/models/errors/com.stackone.stackone_client_java.models.errors.InternalServerErrorResponse.java): Server error while executing the request. Status code `500`.
871
+
*[`com.stackone.stackone_client_java.models.errors.NotImplementedResponse`](./src/main/java/models/errors/com.stackone.stackone_client_java.models.errors.NotImplementedResponse.java): This functionality is not implemented. Status code `501`.
872
+
*[`com.stackone.stackone_client_java.models.errors.BadGatewayResponse`](./src/main/java/models/errors/com.stackone.stackone_client_java.models.errors.BadGatewayResponse.java): Bad gateway error. Status code `502`.
873
+
*[`com.stackone.stackone_client_java.models.errors.PreconditionFailedResponse`](./src/main/java/models/errors/com.stackone.stackone_client_java.models.errors.PreconditionFailedResponse.java): Precondition failed: linked account belongs to a disabled integration. Status code `412`. *
874
+
875
+
<details><summary>Less common errors (6)</summary>
876
+
877
+
<br />
878
+
879
+
**Network errors:**
880
+
*`java.io.IOException` (always wrapped by `java.io.UncheckedIOException`). Commonly encountered subclasses of
881
+
`IOException` include `java.net.ConnectException`, `java.net.SocketTimeoutException`, `EOFException` (there are
882
+
many more subclasses in the JDK platform).
883
+
884
+
**Inherit from [`StackOneError`](./src/main/java/models/errors/StackOneError.java)**:
885
+
886
+
887
+
</details>
888
+
889
+
\* Check [the method documentation](#available-resources-and-operations) to see if the error is applicable.
863
890
<!-- End Error Handling [errors] -->
864
891
865
892
<!-- Start Server Selection [server] -->
@@ -1085,6 +1112,142 @@ public class Application {
1085
1112
```
1086
1113
<!-- End Authentication [security] -->
1087
1114
1115
+
<!-- Start Custom HTTP Client [http-client] -->
1116
+
## Custom HTTP Client
1117
+
1118
+
The Java SDK makes API calls using an `HTTPClient` that wraps the native
1119
+
[HttpClient](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpClient.html). This
1120
+
client provides the ability to attach hooks around the request lifecycle that can be used to modify the request or handle
1121
+
errors and response.
1122
+
1123
+
The `HTTPClient` interface allows you to either use the default `SpeakeasyHTTPClient` that comes with the SDK,
1124
+
or provide your own custom implementation with customized configuration such as custom executors, SSL context,
1125
+
connection pools, and other HTTP client settings.
1126
+
1127
+
The interface provides synchronous (`send`) methods and asynchronous (`sendAsync`) methods. The `sendAsync` method
1128
+
is used to power the async SDK methods and returns a `CompletableFuture<HttpResponse<Blob>>` for non-blocking operations.
1129
+
1130
+
The following example shows how to add a custom header and handle errors:
0 commit comments