The Java and Kotlin SDK generators are now generally available, with improved support for complex OpenAPI specs and several new features.
Convenient builders for complex objects: The SDKs now include helper methods to make building complex objects easier, such as
.addCard(Card)
alongside.cards(List<Card>)
or.addUserMessage(String)
for a discriminated union like{role: 'user', message: string}
.Automatic cleanup for unreachable objects: The
HttpClient
and other resources are now closed automatically when no longer in use, even if the user forgets to call.close()
(available in Java 9+).File uploads: Multipart form data is fully supported, even with nested file fields. Builders like
FileCreateParams.builder().file(...)
acceptbyte[]
,InputStream
, orPath
, and stream data directly to the API, without buffering in-memory whenever possible.Binary responses: Methods like
client.files().retrieve(...)
return anHttpResponse
with a.body()
stream. This is ideal for handling binary data without loading it all into memory.Raw response access: Easily access headers and more for any method call; for example,
client.cards().withRawResponse().create(...)
returns anHttpResponseFor<Card>
with.headers()
,.parse()
, etc.SSE and JSONL streaming: Endpoints with streaming responses are now supported (e.g.,
client.chat().completions().createStreaming()
).Jackson compatibility: The SDKs work with Jackson versions as old as 2.13.4, minimizing the chance of version conflicts in downstream applications.
We have a slew of additional improvements to our Java SDKs planned; please reach out to [email protected] with anything you’d be most excited to see.