feat: APIMethod SDK type and OpenAPI Spec loader enhancements#2337
feat: APIMethod SDK type and OpenAPI Spec loader enhancements#2337Tony-Atlan wants to merge 9 commits intomainfrom
Conversation
|
The only bit that should be direct-managed here is the |
|
Thanks for the feedback. Understood — the SDK types ( The models PR is up at https://github.com/atlanhq/models/pull/1933 with the For now, the loader code (
The |
Extend the loader to create structured assets from OpenAPI specs: - APIObject per component schema, with APIField children per property - APIMethod per HTTP operation (GET/POST/PUT/PATCH/DELETE) per path - Request/response blobs on APIMethod for display - Structured relationships to APIObject for field-level search - apiMethodResponseCodes map for status code → schema mapping - Nested $ref schemas handled via apiIsObjectReference on APIField All existing APISpec and APIPath behavior is preserved unchanged for backward compatibility. Depends on: APIMethod type in Java SDK (EPD-268, PRDLNCH-5559) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…PIObject Adds the APIMethod asset type to the Java SDK to support per-HTTP-method assets as children of APIPath. Includes request/response blob attributes, structured relationships to APIObject for field-level search, and back-references on APIPath and APIObject. New files: - IAPIMethod.java: interface with field constants and getters - APIMethod.java: full asset class with all attributes and boilerplate - _overlays/APIMethod.java: creator convenience methods Updated files: - IAPIPath.java / APIPath.java: added apiMethods relationship - IAPIObject.java / APIObject.java: added apiMethodsRequestingThis and apiMethodsRespondingWithThis back-references Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The KeywordField constant was missing from the interface, which would cause compilation errors when tests reference APIMethod.API_METHOD_RESPONSE_CODES. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Fix Lombok @Singular annotations for apiMethodsRequestingThis and apiMethodsRespondingWithThis in APIObject.java. Add overrides for conflicting default methods inherited from IAPI and ICatalog interfaces in APIMethod.java. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Phase 3: Create synthetic APIObject + APIField assets for inline request/response schemas that have properties (not just $ref). Primitive/array inline schemas continue as blob-only. Phase 5: Add test assertions for response schema relationships (apiMethodResponseSchemas, apiMethodResponseCodes) and object reference field linking (apiIsObjectReference, apiObjectQualifiedName). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Expand one-liner method overrides to multi-line format per project Spotless/Google Java Format rules. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
d074b83 to
4b38617
Compare
- Generate example JSON payloads from OpenAPI schemas instead of raw schema dumps - Create shell APIObjects for primitive/no-content responses - Fix method↔object relationships: use REST API instead of broken SDK attribute names (SDK sends apiMethodResponseSchemas but Atlas expects apiMethodsRespondingWithThis) - Add apiPathQualifiedName, apiMethodQualifiedName, apiBodyType to all API entities - Simplified field type resolution (no format suffix) - PHYSICAL object creation mode with per-body unique instances Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add null-safe operator for objectCreationMode to fix CI build failure when merged with snapshot branch. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Summary (EPD-268 / PRDLNCH-5559)
Adds the APIMethod Java SDK type and enhances the OpenAPI Spec loader to create APIMethod, APIObject, and APIField entities with full relationship wiring.
Key changes
$ref, inline objects, arrays, and primitives into physical APIObject/APIField hierarchiesgenerateExample()andgeneratePrimitiveExample()produce JSON example blobs per response bodyPOST /api/meta/relationshipREST API to work around SDK-Atlas attribute name mismatch (SDK field names are cross-wired relative to Atlas typedef end definitions)resolveFieldType(): no format suffix; description always set to clear stale valuesCommits
5a43e19— Add APIMethod, APIObject, APIField creation to OpenAPI Spec loader48f6f85— Add APIMethod Java SDK type with relationships265eb89— Fix compilation errors in APIMethod and APIObject SDK typesda7f171— Apply Spotless formatting to loader source files6011872— Add inline schema support and expand test coverage4b38617— Apply Spotless formatting to APIMethod SDK files123317d— Example payloads, relationship REST API fix, shell objectsTest plan
apiMethodsRespondingWithThis,apiMethodsRequestingThis)🤖 Generated with Claude Code