Support POJO/Java Class for automatic responseSchema generation
维护者通常 1 天内回复
@hemasekhar-p 已经在做这个了。
开始于 2026年1月8日。
评估
这个 Issue 还没有评估数据。
描述
Is your feature request related to a problem? Please describe.
I am frustrated when I have to manually define the responseSchema using complex builders, even though I already have well-structured DTO (Data Transfer Object) classes in my Java project.
Currently, the Java SDK requires developers to manually construct a Schema object. This leads to redundant work and high maintenance costs, as any change in the Java class must be manually reflected in the Schema builder. For example, in a project with many complex DTOs, this manual mapping is highly error-prone and degrades the Developer Experience (DX).
Describe the solution you'd like
I would like the GenerateContentConfig.Builder to support an overloaded responseSchema(Class<?> clazz) method. This method should automatically introspect the provided Java class (POJO/Record) and generate the corresponding Schema object.
Desired Usage:
// Instead of manual Schema building
GenerateContentConfig config = GenerateContentConfig.builder()
.responseMimeType("application/json")
.responseSchema(MyResponseDto.class) // Passing the DTO class directly
.build();
The SDK should ideally use reflection or existing Jackson integration to map Java types (String, Integer, List, etc.) to the Gemini Type system.
Describe alternatives you've considered
I have considered the Python Gen AI SDK, which already provides this functionality through Pydantic models. Python developers can simply pass a class to response_schema, and the SDK handles the rest.
Currently, in Java, I have to write a custom utility using jsonschema-generator and map it back to the SDK's Schema object. This feels like a feature that should be natively supported to ensure "Feature Parity" across different language SDKs.
Additional context
Since the SDK already utilizes Jackson (@JsonProperty), implementing this wouldn't necessarily require heavy new dependencies. The implementation could respect Jackson annotations:
@JsonPropertyDescription: To populate thedescriptionfield in the schema.@JsonProperty: To handle custom field naming.
This enhancement would make the Java SDK feel much more "idiomatic" and productive for enterprise-level backend development.
- 主要语言
- Java
- 星标
- 398
- 派生
- 126
- 平均合并
- 1 天 12 小时
- 30 天内合并 PR
- 71
环境准备
- 没有 Dockerfile 或 Docker Compose 文件
- 没有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
googleapis/java-genai 的其他 Issue
-
ResponseStream.close() can block on the reader lock before closing the HTTP response可能已有人在做 @hirematha 于 1 天前认领。 未关闭priority: p2 type: bug
难度 2/5 1-3 小时 新手友好度 68/100
googleapis/java-genai#1372 ·
维护者通常 1 天内回复
-
Interactions API: GaosClientException.getMessage() only returns "400 . API error occurred" and omits the server error details可能已有人在做 @hemasekhar-p 于 25 天前认领。 未关闭priority: p2 type: bug
googleapis/java-genai#1282 · 1 条评论 · 已指派 1 人 ·
维护者通常 1 天内回复
-
Interactions API: store(false) omits "id", breaking Interaction and InteractionCompletedEvent deserialization可能已有人在做 @hemasekhar-p 于 25 天前认领。 未关闭priority: p2 type: bug
googleapis/java-genai#1281 · 1 条评论 · 已指派 1 人 ·
维护者通常 1 天内回复
-
Interaction.outputText() always returns Optional.empty() (SDK-computed field is never populated)可能已有人在做 @hemasekhar-p 于 25 天前认领。 未关闭priority: p2 type: bug
googleapis/java-genai#1280 · 1 条评论 · 已指派 1 人 ·
维护者通常 1 天内回复
-
Gen AI with structured output - `propertyOrdering` in Python vs. Java implementations可能已有人在做 @hemasekhar-p 于 79 天前认领。 未关闭priority: p3 type: feature request
googleapis/java-genai#1169 · 1 条评论 · 已指派 1 人 ·
维护者通常 1 天内回复
查看 googleapis/java-genai 的全部 Issue
相似的 Issue
-
bug
难度 2/5 1-3 小时 新手友好度 73/100
维护者通常 2 天内回复
-
code-health feature/sync OS/Android QA/Test-Plan-Specified QA/Yes
难度 2/5 1-3 小时 新手友好度 75/100
brave/brave-browser#60327 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 78/100
aws/context-ontology-accelerator#325 ·
维护者通常 1 天内回复
-
The README tells to run `mvn jeo:disassemble`, which fails with `No plugin found for prefix 'jeo'`未关闭
难度 1/5 1 小时以内 新手友好度 82/100
objectionary/jeo-maven-plugin#1938 ·
维护者通常 2 天内回复
-
effort/l priority/p2 risk/high triage/deferred
难度 2/5 1-3 小时 新手友好度 77/100
iflytek/skillhub#1039 · 1 条评论 ·
维护者通常 1 天内回复