Class OpenAPIDeserializer


  • public class OpenAPIDeserializer
    extends Object
    • Field Detail

      • JSON_SCHEMA_2020_12_TYPES

        protected static Set<String> JSON_SCHEMA_2020_12_TYPES
      • ROOT_KEYS

        protected static Set<String> ROOT_KEYS
      • INFO_KEYS

        protected static Set<String> INFO_KEYS
      • CONTACT_KEYS

        protected static Set<String> CONTACT_KEYS
      • LICENSE_KEYS

        protected static Set<String> LICENSE_KEYS
      • TAG_KEYS

        protected static Set<String> TAG_KEYS
      • RESPONSE_KEYS

        protected static Set<String> RESPONSE_KEYS
      • SERVER_KEYS

        protected static Set<String> SERVER_KEYS
      • SERVER_VARIABLE_KEYS

        protected static Set<String> SERVER_VARIABLE_KEYS
      • PATHITEM_KEYS

        protected static Set<String> PATHITEM_KEYS
      • OPERATION_KEYS

        protected static Set<String> OPERATION_KEYS
      • PARAMETER_KEYS

        protected static Set<String> PARAMETER_KEYS
      • REQUEST_BODY_KEYS

        protected static Set<String> REQUEST_BODY_KEYS
      • SECURITY_SCHEME_KEYS

        protected static Set<String> SECURITY_SCHEME_KEYS
      • EXTERNAL_DOCS_KEYS

        protected static Set<String> EXTERNAL_DOCS_KEYS
      • COMPONENTS_KEYS

        protected static Set<String> COMPONENTS_KEYS
      • SCHEMA_KEYS

        protected static Set<String> SCHEMA_KEYS
      • EXAMPLE_KEYS

        protected static Set<String> EXAMPLE_KEYS
      • HEADER_KEYS

        protected static Set<String> HEADER_KEYS
      • LINK_KEYS

        protected static Set<String> LINK_KEYS
      • MEDIATYPE_KEYS

        protected static Set<String> MEDIATYPE_KEYS
      • XML_KEYS

        protected static Set<String> XML_KEYS
      • OAUTHFLOW_KEYS

        protected static Set<String> OAUTHFLOW_KEYS
      • OAUTHFLOWS_KEYS

        protected static Set<String> OAUTHFLOWS_KEYS
      • ENCODING_KEYS

        protected static Set<String> ENCODING_KEYS
      • ROOT_KEYS_31

        protected static Set<String> ROOT_KEYS_31
      • RESERVED_KEYWORDS_31

        protected static Set<String> RESERVED_KEYWORDS_31
      • INFO_KEYS_31

        protected static Set<String> INFO_KEYS_31
      • CONTACT_KEYS_31

        protected static Set<String> CONTACT_KEYS_31
      • LICENSE_KEYS_31

        protected static Set<String> LICENSE_KEYS_31
      • TAG_KEYS_31

        protected static Set<String> TAG_KEYS_31
      • RESPONSE_KEYS_31

        protected static Set<String> RESPONSE_KEYS_31
      • SERVER_KEYS_31

        protected static Set<String> SERVER_KEYS_31
      • SERVER_VARIABLE_KEYS_31

        protected static Set<String> SERVER_VARIABLE_KEYS_31
      • PATHITEM_KEYS_31

        protected static Set<String> PATHITEM_KEYS_31
      • OPERATION_KEYS_31

        protected static Set<String> OPERATION_KEYS_31
      • PARAMETER_KEYS_31

        protected static Set<String> PARAMETER_KEYS_31
      • REQUEST_BODY_KEYS_31

        protected static Set<String> REQUEST_BODY_KEYS_31
      • SECURITY_SCHEME_KEYS_31

        protected static Set<String> SECURITY_SCHEME_KEYS_31
      • EXTERNAL_DOCS_KEYS_31

        protected static Set<String> EXTERNAL_DOCS_KEYS_31
      • COMPONENTS_KEYS_31

        protected static Set<String> COMPONENTS_KEYS_31
      • SCHEMA_KEYS_31

        protected static Set<String> SCHEMA_KEYS_31
      • EXAMPLE_KEYS_31

        protected static Set<String> EXAMPLE_KEYS_31
      • HEADER_KEYS_31

        protected static Set<String> HEADER_KEYS_31
      • LINK_KEYS_31

        protected static Set<String> LINK_KEYS_31
      • MEDIATYPE_KEYS_31

        protected static Set<String> MEDIATYPE_KEYS_31
      • XML_KEYS_31

        protected static Set<String> XML_KEYS_31
      • OAUTHFLOW_KEYS_31

        protected static Set<String> OAUTHFLOW_KEYS_31
      • OAUTHFLOWS_KEYS_31

        protected static Set<String> OAUTHFLOWS_KEYS_31
      • ENCODING_KEYS_31

        protected static Set<String> ENCODING_KEYS_31
      • validNodeTypes

        protected static Set<com.fasterxml.jackson.databind.node.JsonNodeType> validNodeTypes
    • Constructor Detail

      • OpenAPIDeserializer

        public OpenAPIDeserializer()
    • Method Detail

      • deserialize

        public io.swagger.v3.parser.core.models.SwaggerParseResult deserialize​(com.fasterxml.jackson.databind.JsonNode rootNode)
      • deserialize

        public io.swagger.v3.parser.core.models.SwaggerParseResult deserialize​(com.fasterxml.jackson.databind.JsonNode rootNode,
                                                                               String path)
      • deserialize

        public io.swagger.v3.parser.core.models.SwaggerParseResult deserialize​(com.fasterxml.jackson.databind.JsonNode rootNode,
                                                                               String path,
                                                                               io.swagger.v3.parser.core.models.ParseOptions options)
      • deserialize

        public io.swagger.v3.parser.core.models.SwaggerParseResult deserialize​(com.fasterxml.jackson.databind.JsonNode rootNode,
                                                                               String path,
                                                                               io.swagger.v3.parser.core.models.ParseOptions options,
                                                                               boolean isOaiAuthor)
      • getExtensions

        public Map<String,​Object> getExtensions​(com.fasterxml.jackson.databind.node.ObjectNode node)
      • getComponents

        public io.swagger.v3.oas.models.Components getComponents​(com.fasterxml.jackson.databind.node.ObjectNode obj,
                                                                 String location,
                                                                 OpenAPIDeserializer.ParseResult result)
      • getServer

        public io.swagger.v3.oas.models.servers.Server getServer​(com.fasterxml.jackson.databind.node.ObjectNode obj,
                                                                 String location,
                                                                 OpenAPIDeserializer.ParseResult result)
      • getServerVariables

        public io.swagger.v3.oas.models.servers.ServerVariables getServerVariables​(com.fasterxml.jackson.databind.node.ObjectNode obj,
                                                                                   String location,
                                                                                   OpenAPIDeserializer.ParseResult result)
      • getServerVariable

        public io.swagger.v3.oas.models.servers.ServerVariable getServerVariable​(com.fasterxml.jackson.databind.node.ObjectNode obj,
                                                                                 String location,
                                                                                 OpenAPIDeserializer.ParseResult result)
      • getPathItems

        protected boolean getPathItems​(com.fasterxml.jackson.databind.node.ObjectNode obj,
                                       String location,
                                       OpenAPIDeserializer.ParseResult result,
                                       Map<String,​io.swagger.v3.oas.models.PathItem> paths,
                                       boolean isWebhook)
      • getAllOperationsInAPath

        public List<io.swagger.v3.oas.models.Operation> getAllOperationsInAPath​(io.swagger.v3.oas.models.PathItem pathObj)
      • getExternalDocs

        public io.swagger.v3.oas.models.ExternalDocumentation getExternalDocs​(com.fasterxml.jackson.databind.node.ObjectNode node,
                                                                              String location,
                                                                              OpenAPIDeserializer.ParseResult result)
      • getKeys

        public Set<String> getKeys​(com.fasterxml.jackson.databind.node.ObjectNode node)
      • getObject

        public com.fasterxml.jackson.databind.node.ObjectNode getObject​(String key,
                                                                        com.fasterxml.jackson.databind.node.ObjectNode node,
                                                                        boolean required,
                                                                        String location,
                                                                        OpenAPIDeserializer.ParseResult result)
      • getObjectOrBoolean

        public com.fasterxml.jackson.databind.JsonNode getObjectOrBoolean​(String key,
                                                                          com.fasterxml.jackson.databind.node.ObjectNode node,
                                                                          boolean required,
                                                                          String location,
                                                                          OpenAPIDeserializer.ParseResult result)
      • getLicense

        public io.swagger.v3.oas.models.info.License getLicense​(com.fasterxml.jackson.databind.node.ObjectNode node,
                                                                String location,
                                                                OpenAPIDeserializer.ParseResult result)
      • getContact

        public io.swagger.v3.oas.models.info.Contact getContact​(com.fasterxml.jackson.databind.node.ObjectNode node,
                                                                String location,
                                                                OpenAPIDeserializer.ParseResult result)
      • getContent

        public io.swagger.v3.oas.models.media.Content getContent​(com.fasterxml.jackson.databind.node.ObjectNode node,
                                                                 String location,
                                                                 OpenAPIDeserializer.ParseResult result)
      • getMediaType

        public io.swagger.v3.oas.models.media.MediaType getMediaType​(com.fasterxml.jackson.databind.node.ObjectNode contentNode,
                                                                     String location,
                                                                     OpenAPIDeserializer.ParseResult result)
      • getEncoding

        public io.swagger.v3.oas.models.media.Encoding getEncoding​(com.fasterxml.jackson.databind.node.ObjectNode node,
                                                                   String location,
                                                                   OpenAPIDeserializer.ParseResult result)
      • getCallbacks

        public Map<String,​io.swagger.v3.oas.models.callbacks.Callback> getCallbacks​(com.fasterxml.jackson.databind.node.ObjectNode node,
                                                                                          String location,
                                                                                          OpenAPIDeserializer.ParseResult result,
                                                                                          boolean underComponents)
      • getCallback

        public io.swagger.v3.oas.models.callbacks.Callback getCallback​(com.fasterxml.jackson.databind.node.ObjectNode node,
                                                                       String location,
                                                                       OpenAPIDeserializer.ParseResult result)
      • getArray

        public com.fasterxml.jackson.databind.node.ArrayNode getArray​(String key,
                                                                      com.fasterxml.jackson.databind.node.ObjectNode node,
                                                                      boolean required,
                                                                      String location,
                                                                      OpenAPIDeserializer.ParseResult result,
                                                                      boolean noInvalidError)
      • getArray

        public com.fasterxml.jackson.databind.node.ArrayNode getArray​(String key,
                                                                      com.fasterxml.jackson.databind.node.ObjectNode node,
                                                                      boolean required,
                                                                      String location,
                                                                      OpenAPIDeserializer.ParseResult result)
      • getParameters

        public Map<String,​io.swagger.v3.oas.models.parameters.Parameter> getParameters​(com.fasterxml.jackson.databind.node.ObjectNode obj,
                                                                                             String location,
                                                                                             OpenAPIDeserializer.ParseResult result,
                                                                                             boolean underComponents)
      • getParameterList

        public List<io.swagger.v3.oas.models.parameters.Parameter> getParameterList​(com.fasterxml.jackson.databind.node.ArrayNode obj,
                                                                                    String location,
                                                                                    OpenAPIDeserializer.ParseResult result)
      • getParameter

        public io.swagger.v3.oas.models.parameters.Parameter getParameter​(com.fasterxml.jackson.databind.node.ObjectNode obj,
                                                                          String location,
                                                                          OpenAPIDeserializer.ParseResult result)
      • getHeader

        public io.swagger.v3.oas.models.headers.Header getHeader​(com.fasterxml.jackson.databind.node.ObjectNode headerNode,
                                                                 String location,
                                                                 OpenAPIDeserializer.ParseResult result)
      • getSecuritySchemes

        public Map<String,​io.swagger.v3.oas.models.security.SecurityScheme> getSecuritySchemes​(com.fasterxml.jackson.databind.node.ObjectNode obj,
                                                                                                     String location,
                                                                                                     OpenAPIDeserializer.ParseResult result,
                                                                                                     boolean underComponents)
      • getSecurityScheme

        public io.swagger.v3.oas.models.security.SecurityScheme getSecurityScheme​(com.fasterxml.jackson.databind.node.ObjectNode node,
                                                                                  String location,
                                                                                  OpenAPIDeserializer.ParseResult result)
      • getOAuthFlows

        public io.swagger.v3.oas.models.security.OAuthFlows getOAuthFlows​(com.fasterxml.jackson.databind.node.ObjectNode node,
                                                                          String location,
                                                                          OpenAPIDeserializer.ParseResult result)
      • getOAuthFlow

        public io.swagger.v3.oas.models.security.OAuthFlow getOAuthFlow​(String oAuthFlowType,
                                                                        com.fasterxml.jackson.databind.node.ObjectNode node,
                                                                        String location,
                                                                        OpenAPIDeserializer.ParseResult result)
      • getDiscriminator

        public io.swagger.v3.oas.models.media.Discriminator getDiscriminator​(com.fasterxml.jackson.databind.node.ObjectNode node,
                                                                             String location,
                                                                             OpenAPIDeserializer.ParseResult result)
      • getCommonSchemaFields

        protected void getCommonSchemaFields​(com.fasterxml.jackson.databind.node.ObjectNode node,
                                             String location,
                                             OpenAPIDeserializer.ParseResult result,
                                             io.swagger.v3.oas.models.media.Schema schema)
      • getExamples

        public Map<String,​io.swagger.v3.oas.models.examples.Example> getExamples​(com.fasterxml.jackson.databind.node.ObjectNode obj,
                                                                                       String location,
                                                                                       OpenAPIDeserializer.ParseResult result,
                                                                                       boolean underComponents)
      • getExample

        public io.swagger.v3.oas.models.examples.Example getExample​(com.fasterxml.jackson.databind.node.ObjectNode node,
                                                                    String location,
                                                                    OpenAPIDeserializer.ParseResult result)
      • setStyle

        public void setStyle​(String value,
                             io.swagger.v3.oas.models.parameters.Parameter parameter,
                             String location,
                             com.fasterxml.jackson.databind.node.ObjectNode obj,
                             OpenAPIDeserializer.ParseResult result)
      • getResponses

        public io.swagger.v3.oas.models.responses.ApiResponses getResponses​(com.fasterxml.jackson.databind.node.ObjectNode node,
                                                                            String location,
                                                                            OpenAPIDeserializer.ParseResult result,
                                                                            boolean underComponents)
      • getResponse

        public io.swagger.v3.oas.models.responses.ApiResponse getResponse​(com.fasterxml.jackson.databind.node.ObjectNode node,
                                                                          String location,
                                                                          OpenAPIDeserializer.ParseResult result)
      • getOperation

        public io.swagger.v3.oas.models.Operation getOperation​(com.fasterxml.jackson.databind.node.ObjectNode obj,
                                                               String location,
                                                               OpenAPIDeserializer.ParseResult result)
      • getSecurityRequirementsList

        public List<io.swagger.v3.oas.models.security.SecurityRequirement> getSecurityRequirementsList​(com.fasterxml.jackson.databind.node.ArrayNode nodes,
                                                                                                       String location,
                                                                                                       OpenAPIDeserializer.ParseResult result)
      • getRequestBodies

        public Map<String,​io.swagger.v3.oas.models.parameters.RequestBody> getRequestBodies​(com.fasterxml.jackson.databind.node.ObjectNode obj,
                                                                                                  String location,
                                                                                                  OpenAPIDeserializer.ParseResult result,
                                                                                                  boolean underComponents)
      • getRequestBody

        public io.swagger.v3.oas.models.parameters.RequestBody getRequestBody​(com.fasterxml.jackson.databind.node.ObjectNode node,
                                                                              String location,
                                                                              OpenAPIDeserializer.ParseResult result)
      • inferTypeFromArray

        public String inferTypeFromArray​(com.fasterxml.jackson.databind.node.ArrayNode an)
      • getJsonSchemaParserExtensions

        public static List<JsonSchemaParserExtension> getJsonSchemaParserExtensions()
        Locates extensions on the current thread class loader and then, if it differs from this class classloader (as in OSGi), locates extensions from this class classloader as well.
        Returns:
        a list of extensions
      • getJsonSchemaParserExtensions

        protected static List<JsonSchemaParserExtension> getJsonSchemaParserExtensions​(ClassLoader cl)
        Locates the extensions for given ClassLoader and stores them for performance reason in an in-memory (LRU) cache.
        Parameters:
        cl - the ClassLoader for which the extensions are located
        Returns:
      • getJsonSchema

        public io.swagger.v3.oas.models.media.Schema getJsonSchema​(com.fasterxml.jackson.databind.JsonNode jsonNode,
                                                                   String location,
                                                                   OpenAPIDeserializer.ParseResult result)