2.41.1

(fix): Fix integer overflow when processing OpenAPI specs with large integer values in examples. Values exceeding Java’s Integer range are automatically converted to long type to prevent generation failures.

2.41.0

(feat): Add support for generating wire tests via enable-wire-tests flag. Wire tests verify HTTP protocol communication using MockWebServer and are generated for all endpoints in a service.

1customConfig:
2 enable-wire-tests: true

Generated tests include:

  • Working 404/500 error tests that compile immediately
  • Success test templates with TODO comments for customization
  • Proper handling of staged vs regular builders
  • Constants for all magic strings for better maintainability

Note: Complex request bodies and response validation require manual customization.

2.40.0

(feat): Add support for client-side default parameter values via use-default-request-parameter-values flag. When enabled, query and header parameters with defaults become Optional types and defaults are automatically applied when not provided. Example:

1customConfig:
2 use-default-request-parameter-values: true

Generated code:

1// Parameters with defaults become Optional
2private final Optional<Integer> perPage; // Has default: 50
3
4// Defaults are applied automatically
5QueryStringMapper.addQueryParameter(httpUrl, "per_page", request.getPerPage().orElse(50), false);

2.39.6

(feat): Add opt-in extensible builder pattern via enable-extensible-builders flag. When enabled, builders use the self-type pattern allowing users to extend generated builders while maintaining type safety. Example:

1class CustomBuilder extends BaseClientBuilder<CustomBuilder> {
2 @Override
3 protected CustomBuilder self() { return this; }
4
5 public CustomBuilder workspaceId(String id) {
6 // custom logic
7 return this;
8 }
9}

2.39.5

(fix): Fix undiscriminated union deserialization to catch all RuntimeException types instead of just IllegalArgumentException.

2.39.4

(fix): Ensure JUnit dependencies are always added when test files are generated

2.39.3

(fix): Fix compilation error when using boolean path parameters by properly handling primitive boolean to String conversion

2.39.2

(fix): Fix javadoc compilation errors by using HTML entities for special characters in builder examples

2.39.1

(fix): Refactor builder extension pattern to use Template Method with dynamic generation. Configuration methods are only generated based on API spec (auth, headers, variables). All methods are protected for override.

2.39.0

(feat): Enable builder extensibility for generated SDK clients. Builders are no longer marked as final, allowing users to extend them and customize client behavior. Added protected buildClientOptions() method for customization hooks and static from() method to ClientOptions.Builder for copying existing configurations. This enables use cases like environment variable expansion in URLs and custom authentication methods.

2.38.8

(fix): Fix byte array convenience methods to include all parameters when delegating to InputStream methods.

2.38.7

(fix): Swap InputStreamRequestBody arguments to match constructor.