Skip to content

feat: Add APIMethod asset type with request/response schemas#2337

Open
Tony-Atlan wants to merge 7 commits intomainfrom
feat/api-method-loader
Open

feat: Add APIMethod asset type with request/response schemas#2337
Tony-Atlan wants to merge 7 commits intomainfrom
feat/api-method-loader

Conversation

@Tony-Atlan
Copy link

@Tony-Atlan Tony-Atlan commented Mar 18, 2026

Summary

  • Adds APIMethod Java SDK type (IAPIMethod.java, APIMethod.java, _overlays/APIMethod.java) as a child of APIPath with request/response schema relationships
  • Updates APIPath and APIObject SDK types with new relationship fields (apiMethods, apiMethodsRequestingThis, apiMethodsRespondingWithThis)
  • Updates OpenAPI Spec loader to create APIObject, APIField, and APIMethod assets from OpenAPI specifications:
    • Phase 1: Creates APIObject per components/schemas entry, APIField per schema property, with $ref handling for nested object references
    • Phase 2: Creates APIMethod per HTTP operation per path, with request/response blobs for display and structured relationships to APIObject for field-level search
    • Phase 3: Creates synthetic APIObject + APIField assets for inline schemas with properties
  • All existing APISpec/APIPath behavior preserved unchanged (backward compatible)

Tickets

  • EPD-268 — Augment OpenAPI Spec API Assets with Request, Response and Parameters
  • PRDLNCH-5559 — Include APIMethod as a child of APIPath

Test plan

  • Verify compilation passes
  • Verify existing Petstore tests still pass (connectionCreated, specCreated, pathsCreated)
  • Verify new tests pass (objectsCreated, fieldsCreated, methodsCreated, methodRequestSchemaLinked, methodResponseSchemaLinked, objectRefFieldsLinked)
  • Run against a live Atlan tenant with sample OpenAPI specs to confirm asset creation
  • Verify APIMethod assets appear in the UI with request/response blobs on the overview page

🤖 Generated with Claude Code

Tony-Atlan and others added 6 commits March 16, 2026 23:03
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>
@Tony-Atlan Tony-Atlan requested a review from cmgrote as a code owner March 18, 2026 05:27
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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant