-
Notifications
You must be signed in to change notification settings - Fork 22
Closed
Labels
Description
The goal of this issue is to provide dereference strategy for OpenAPI 3.1 spec complatible with SwaggerJS.
Currently identified compatibility aspects:
- optional use of circular references
- meta patches
- macros (will be reused from swagger-client)
- plugins (will be reused from swagger-client)
- normalization
Architecture diagram of ApiDOM integration into swagger-client
stateDiagram-v2
state "Swagger Client" as SwaggerClient
state "HTTP Client" as SwaggerClientHTTPClient
state "JSON Parser" as SwaggerClientJSONParser
state "YALM 1.2 Parser" as SwaggerClientYALMParser
state "Swagger Client Plugins" as SwaggerClientPlugins
ApiDOM
state "ApiDOM resolver plugin" as ApiDOMSwaggerClientResolverPlugin
state "ApiDOM JSON parser plugin" as ApiDOMSwaggerClientJSONParserPlugin
state "ApiDOM OpenAPI 3.1 JSON parser plugin" as ApiDOMSwaggerClientJSONOpenAPI31ParserPlugin
state "ApiDOM YAML Parser plugin" as ApiDOMSwaggerClientYAMLParserlugin
state "ApiDOM OpenAPI 3.1 YAML Parser plugin" as ApiDOMSwaggerClientYAMLOpenAPI31Parserlugin
state "ApiDOM OpenAPI 3.1 normalization" as ApiDOMOpenAPI31Normalization
state "ApiDOM OpenAPI 3.1 dereference strategy" as ApiDOMOpenAPI31DereferenceStrategy
SwaggerClient --> SwaggerClientHTTPClient
SwaggerClient --> SwaggerClientJSONParser
SwaggerClient --> SwaggerClientYALMParser
SwaggerClientPlugins --> SwaggerClient
SwaggerClientHTTPClient --> ApiDOMSwaggerClientResolverPlugin
SwaggerClientJSONParser --> ApiDOMSwaggerClientJSONParserPlugin
SwaggerClientJSONParser --> ApiDOMSwaggerClientJSONOpenAPI31ParserPlugin
SwaggerClientYALMParser --> ApiDOMSwaggerClientYAMLParserlugin
SwaggerClientYALMParser --> ApiDOMSwaggerClientYAMLOpenAPI31Parserlugin
ApiDOM --> SwaggerClient
ApiDOMOpenAPI31Normalization --> ApiDOM
ApiDOMSwaggerClientResolverPlugin --> ApiDOM
ApiDOMSwaggerClientJSONParserPlugin --> ApiDOM
ApiDOMSwaggerClientJSONOpenAPI31ParserPlugin --> ApiDOM
ApiDOMSwaggerClientYAMLParserlugin --> ApiDOM
ApiDOMSwaggerClientYAMLOpenAPI31Parserlugin --> ApiDOM
ApiDOMOpenAPI31DereferenceStrategy --> ApiDOM
NOTE: New issues SHOULD be created for every
compatibility
aspect.