Skip to content

Conversation

@nallenscott
Copy link
Member

Implement Parser Registry Pattern to enable support for multiple API specification formats beyond OpenAPI. This creates a clean, extensible architecture for future Postman Collections, GraphQL, and other formats.

Changes:

  • Create parsers module with APISpecParser abstract base class
  • Implement ParserRegistry for parser management and discovery
  • Extract all OpenAPI logic into OpenAPIParser class
  • Refactor OCPSchemaDiscovery to orchestration layer using registry
  • Add comprehensive tests for parser components
  • Update exports to include new parser classes

BREAKING CHANGE: Private methods moved from OCPSchemaDiscovery to OpenAPIParser class. Methods like _parse_openapi_spec(), _normalize_tool_name(), _filter_tools_by_resources(), and others are no longer accessible on OCPSchemaDiscovery. Code using these private methods should use the OpenAPIParser class directly or the public discover_api() method.

Implement Parser Registry Pattern to enable support for multiple API
specification formats beyond OpenAPI. This creates a clean, extensible
architecture for future Postman Collections, GraphQL, and other formats.

Changes:
- Create parsers module with APISpecParser abstract base class
- Implement ParserRegistry for parser management and discovery
- Extract all OpenAPI logic into OpenAPIParser class (~600 lines)
- Refactor OCPSchemaDiscovery to orchestration layer using registry
- Add comprehensive tests for parser components
- Update exports to include new parser classes

BREAKING CHANGE: Private methods moved from OCPSchemaDiscovery to
OpenAPIParser class. Methods like _parse_openapi_spec(),
_normalize_tool_name(), _filter_tools_by_resources(), and others are
no longer accessible on OCPSchemaDiscovery. Code using these private
methods should use the OpenAPIParser class directly or the public
discover_api() method.
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