コード例 #1
0
 public OpenApiMetadataPathsFactory(
     IOpenApiMetadataPathsFactorySelectorStrategy openApiMetadataPathsFactorySelectorStrategy,
     IOpenApiMetadataPathsFactoryContentTypeStrategy contentTypeStrategy,
     IOpenApiMetadataPathsFactoryNamingStrategy pathsFactoryNamingStrategy,
     ApiSettings apiSettings)
 {
     _openApiMetadataPathsFactorySelectorStrategy = openApiMetadataPathsFactorySelectorStrategy;
     _contentTypeStrategy        = contentTypeStrategy;
     _pathsFactoryNamingStrategy = pathsFactoryNamingStrategy;
     _apiSettings = apiSettings;
 }
コード例 #2
0
        public static OpenApiMetadataPathsFactory CreateOpenApiMetadataPathsFactory(
            OpenApiMetadataDocumentContext openApiMetadataDocumentContext, ApiSettings apiSettings)
        {
            if (openApiMetadataDocumentContext.IsProfileContext)
            {
                var profileStrategy = new OpenApiMetadataPathsFactoryProfileStrategy(openApiMetadataDocumentContext);

                //Profile strategy implements each of the interfaces in the signature of the paths factory constructor
                //Hence the odd parameter repetition.
                return(new OpenApiMetadataPathsFactory(profileStrategy, profileStrategy, profileStrategy, apiSettings));
            }

            IOpenApiMetadataPathsFactorySelectorStrategy selectorStrategy       = null;
            IOpenApiMetadataPathsFactoryNamingStrategy   resourceNamingStrategy = null;

            if (openApiMetadataDocumentContext.RenderType == RenderType.ExtensionArtifactsOnly)
            {
                selectorStrategy = new OpenApiMetadataPathsFactorySchemaSelectorStrategy(openApiMetadataDocumentContext);
            }

            if (openApiMetadataDocumentContext.IsCompositeContext)
            {
                selectorStrategy       = new OpenApiMetadataCompositePathsFactoryStrategy(openApiMetadataDocumentContext);
                resourceNamingStrategy = new OpenApiMetadataPathsFactoryCompositeStrategy();
            }

            var defaultStrategy = new DefaultOpenApiMetadataPathsFactoryStrategy();
            var defaultResourceDefinitionNamingStrategy = new OpenApiMetadataPathsFactoryDefaultStrategy();

            IOpenApiMetadataPathsFactoryContentTypeStrategy contentTypeStrategy = defaultStrategy;

            selectorStrategy       = selectorStrategy ?? defaultStrategy;
            resourceNamingStrategy = resourceNamingStrategy ?? defaultResourceDefinitionNamingStrategy;

            return(new OpenApiMetadataPathsFactory(selectorStrategy, contentTypeStrategy, resourceNamingStrategy, apiSettings));
        }