https://github.com/polytomic/polytomic-java
Java library for the Polytomic API
https://github.com/polytomic/polytomic-java
java-client java-sdk kotlin-client kotlin-sdk
Last synced: 30 days ago
JSON representation
Java library for the Polytomic API
- Host: GitHub
- URL: https://github.com/polytomic/polytomic-java
- Owner: polytomic
- License: mit
- Created: 2023-12-22T18:17:05.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2026-03-31T18:35:23.000Z (about 1 month ago)
- Last Synced: 2026-04-01T22:27:55.339Z (about 1 month ago)
- Topics: java-client, java-sdk, kotlin-client, kotlin-sdk
- Language: Java
- Homepage: https://www.polytomic.com
- Size: 1.26 MB
- Stars: 0
- Watchers: 5
- Forks: 0
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Polytomic Java Library
[](https://central.sonatype.com/artifact/com.polytomic/polytomic-java)
The Polytomic Java SDK provides convenient access to the Polytomic API from Java or Kotlin.
## Documentation
API reference documentation is available [here](https://docs.polytomic.com/reference).
## Installation
### Gradle
Add the dependency in your `build.gradle`:
```groovy
dependencies {
implementation 'com.polytomic:polytomic-java:0.0.1-beta0'
}
```
### Maven
Add the dependency in your `pom.xml`:
```xml
com.polytomic
polytomic-java
0.0.1-beta0
```
## Usage
```java
import com.polytomic.api.Polytomic;
Polytomic polytomic = Polytomic.builder()
.token("YOUR_API_KEY")
.build();
var bulkSync = polytomic.bulkSync().get("bulk-sync-id")
System.out.printlin("Received response! " + bulkSync);
```
## Handling Errors
When the API returns a non-success status code (4xx or 5xx response),
a subclass of [ApiError](./src/main/java/com/polytomic/api/core/ApiError.java)
will be thrown:
```java
import com.polytomic.api.core.ApiError;
try {
polytomic.bulkSync().executions().list(/* ... */);
} catch (ApiError error) {
System.out.println(error.getBody());
System.out.println(error.getStatusCode());
}
```
## Additional Properties
Sometimes, the server response may include additional properties that are not
available in the SDK. Use the `getAdditionalProperties()` method to access them.
```java
Object value = entity.getAdditionalProperties().get("new_prop");
```
## Request Options
Every method in the SDK takes an optional `RequestOptions` class where
you can specify overrides for that specific endpoint call.
```java
import com.polytomic.api.core.RequestOptions;
try {
polytomic.bulkSync().get("...", RequestOptions.builder()
.apiKey("....") // override the API key for this endpoint call
.build());
```
## Staged Builders
All models in the SDK use the staged builder the pattern. In particular,
the `build` method for a model will not be accessible until all required
properties are specified.
```java
import comp.polytomic.api.types.BulkSchedule;
BulkSchedule.builder()
.build() // build method inacessible
BulkSchedule.builder()
.frequency("12h")
.build() // build methd accessible after specifying frequency
```
## Version pinning
We recommend pinning the package
version to a specific version in your build.gradle file. This way, you can
install the same version each time without breaking changes unless you are
intentionally looking for the latest version.
## Contributing
While we value open-source contributions to this SDK, this library
is generated programmatically. Additions made directly to this library
would have to be moved over to our generation code, otherwise they would
be overwritten upon the next generated release. Feel free to open a PR as a
proof of concept, but know that we will not be able to merge it as-is.
We suggest opening an issue first to discuss with us!
On the other hand, contributions to the README are always very welcome!