Example #1
0
 public DictionarySchemaGenerator(
     IContractResolver contractResolver,
     ISchemaGenerator rootGenerator,
     SchemaGeneratorOptions options)
     : base(contractResolver, rootGenerator, options)
 {
 }
 public ReferencedSchemaGenerator(
     IContractResolver contractResolver,
     ISchemaGenerator rootGenerator,
     SchemaGeneratorOptions options)
     : base(contractResolver, rootGenerator, options)
 {
 }
 public NetRpcSwaggerProvider(ISchemaGenerator schemaGenerator, IOptions <SwaggerGeneratorOptions> optionsAccessor)
 {
     _schemaRepository = new SchemaRepository();
     _schemaGenerator  = schemaGenerator;
     _options          = optionsAccessor.Value;
     _doc = new OpenApiDocument();
 }
        public ConventionalRoutingSwaggerGenerator(SwaggerGeneratorOptions options,
                                                   IConventionalRoutingApiDescriptionGroupCollectionProvider apiDescriptionsProvider,
                                                   ISchemaGenerator schemaGenerator) : base(options, apiDescriptionsProvider, schemaGenerator)
        {
            if (options.TagsSelector.Method.Name.Equals("DefaultTagsSelector",
                                                        StringComparison.InvariantCultureIgnoreCase))
            {
                options.TagsSelector = (apiDesc) =>
                {
                    if (apiDesc.GroupName != null)
                    {
                        return(new[] { apiDesc.GroupName });
                    }

                    var controllerActionDescriptor = apiDesc.ActionDescriptor as ControllerActionDescriptor;

                    try
                    {
                        if (controllerActionDescriptor.RouteValues.TryGetValue("area", out string area) &&
                            !string.IsNullOrEmpty(area))
                        {
                            return(new[] { $"{area}.{controllerActionDescriptor.ControllerName}" });
                        }

                        return(new[] { controllerActionDescriptor.ControllerName });
                    }
                    catch (Exception ex)
                    {
                        return(options.TagsSelector.Invoke(apiDesc));
                    }
                };
            }
        }
Example #5
0
 public TypeSpecificSchemaGenerator(
     IContractResolver contractResolver,
     ISchemaGenerator rootGenerator,
     SchemaGeneratorOptions options)
     : base(contractResolver, rootGenerator, options)
 {
 }
Example #6
0
 public PolymorphicSchemaGenerator(
     SchemaGeneratorOptions options,
     ISchemaGenerator rootGenerator,
     IContractResolver contractResolver)
     : base(options, rootGenerator, contractResolver)
 {
 }
Example #7
0
        OpenApiSchema GetOverrideType(
            ISchemaGenerator generator,
            SchemaRepository repository,
            IReadOnlyList <Type> types,
            IReadOnlyList <object?>?examples)
        {
            if (types.Count == 1)
            {
                return(generator.GenerateSchema(types.Single(), repository));
            }
            else
            {
                var union = new OpenApiSchema();

                for (var i = 0; i < types.Count; i++)
                {
                    var schema  = generator.GenerateSchema(types[i], repository);
                    var example = (examples != null) ? examples[i] : null;

                    if (example != null)
                    {
                        schema.Example = OpenApiAnyFactory.CreateFor(schema, example);
                    }

                    union.OneOf.Add(schema);
                }

                return(union);
            }
        }
 public AsyncApiDocumentGenerator(IOptions <AsyncApiDocumentGeneratorOptions> options, ISchemaGenerator schemaGenerator, IMessageGenerator messageGenerator)
 {
     _options = options?.Value ??
                throw new ArgumentNullException(nameof(options));
     _schemaGenerator  = schemaGenerator;
     _messageGenerator = messageGenerator;
 }
 public SwaggerGenerator(
     IApiDescriptionGroupCollectionProvider apiDescriptionsProvider,
     ISchemaGenerator schemaGenerator,
     IOptions <SwaggerGeneratorOptions> optionsAccessor)
     : this(apiDescriptionsProvider, schemaGenerator, optionsAccessor.Value)
 {
 }
Example #10
0
        private static void AddResponseHeaders(
            OpenApiOperation operation,
            ApiResponseType responseType,
            SchemaRepository schemaRepository,
            ISchemaGenerator schemaGenerator)
        {
            var headers = (responseType.ModelMetadata as ApiModelMetadata)?.Headers;

            if (headers == null || headers.Length == 0)
            {
                return;
            }

            if (!operation.Responses.TryGetValue(responseType.StatusCode.ToString(), out var response))
            {
                return;
            }

            for (var i = 0; i < headers.Length; i++)
            {
                var metadata = headers[i];
                var schema   = schemaGenerator.GenerateSchema(metadata.Type, schemaRepository);
                response.Headers.Add(metadata.Name, new OpenApiHeader {
                    Schema = schema
                });
            }
        }
        public void TestInitialize()
        {
            _operation = new OpenApiOperation
            {
                Parameters = new List <OpenApiParameter>(_inputApiParameters.Select(
                                                             param => new OpenApiParameter
                {
                    Name     = param.Name,
                    Required = true,
                }))
            };
            var method = FunctionMethodTestSource.GetMethodInfo();

            _schemaRegistry   = A.Fake <ISchemaGenerator>();
            _schemaRepository = new SchemaRepository();
            var apiDescription = new ApiDescription();

            foreach (var inputApiParameter in _inputApiParameters)
            {
                var parameterDescription = new ApiParameterDescription
                {
                    Name      = inputApiParameter.Name,
                    RouteInfo = inputApiParameter.HasRouteInfo ? new ApiParameterRouteInfo {
                        IsOptional = inputApiParameter.IsOptional
                    } : null
                };
                apiDescription.ParameterDescriptions.Add(parameterDescription);
            }

            _context = new OperationFilterContext(apiDescription, _schemaRegistry, _schemaRepository, method);
            _sut     = new HttpFunctionOptionalParameterFilter();
        }
Example #12
0
 public PolymorphicSchemaGenerator(
     IContractResolver contractResolver,
     ISchemaGenerator rootGenerator,
     SchemaGeneratorOptions options)
     : base(contractResolver, rootGenerator, options)
 {
 }
Example #13
0
 public OperationFilterContext(
     ApiDescription apiDescription,
     ISchemaGenerator schemaRegistry,
     SchemaRepository schemaRepository,
     MethodInfo methodInfo) : this(apiDescription, schemaRegistry, schemaRepository, methodInfo, null)
 {
 }
Example #14
0
 public PrimitiveSchemaGenerator(
     SchemaGeneratorOptions options,
     ISchemaGenerator rootGenerator,
     IContractResolver contractResolver,
     JsonSerializerSettings serializerSettings) : base(options, rootGenerator, contractResolver)
 {
     _serializerSettings = serializerSettings;
 }
 public CachingSwaggerProvider(
     IOptions <SwaggerGeneratorOptions> optionsAccessor,
     IApiDescriptionGroupCollectionProvider apiDescriptionsProvider,
     ISchemaGenerator schemaGenerator,
     ICacheManager cacheManager)
 {
     _cacheManager     = cacheManager;
     _swaggerGenerator = new SwaggerGenerator(optionsAccessor.Value, apiDescriptionsProvider, schemaGenerator);
 }
Example #16
0
 public DocumentGenerator(
     IApiDescriptionGroupCollectionProvider apiDescriptionsProvider,
     ISchemaGenerator schemaGenerator,
     DocumentGeneratorOptions options)
 {
     _apiDescriptionsProvider = apiDescriptionsProvider;
     _schemaGenerator         = schemaGenerator;
     _options = options ?? new DocumentGeneratorOptions();
 }
Example #17
0
 protected ChainableSchemaGenerator(
     IContractResolver contractResolver,
     ISchemaGenerator rootGenerator,
     SchemaGeneratorOptions options)
 {
     ContractResolver = contractResolver;
     RootGenerator    = rootGenerator;
     Options          = options;
 }
Example #18
0
 public DocumentFilterContext(
     IEnumerable <ApiDescription> apiDescriptions,
     ISchemaGenerator schemaGenerator,
     SchemaRepository schemaRepository)
 {
     ApiDescriptions  = apiDescriptions;
     SchemaGenerator  = schemaGenerator;
     SchemaRepository = schemaRepository;
 }
 public NewtonsoftObjectHandler(
     SchemaGeneratorOptions generatorOptions,
     IContractResolver contractResolver,
     ISchemaGenerator schemaGenerator)
 {
     _generatorOptions = generatorOptions;
     _contractResolver = contractResolver;
     _schemaGenerator  = schemaGenerator;
 }
 public SchemaFilterContext(
     Type type,
     SchemaRepository schemaRepository,
     ISchemaGenerator schemaGenerator)
 {
     Type             = type;
     SchemaRepository = schemaRepository;
     SchemaGenerator  = schemaGenerator;
 }
Example #21
0
 public SwaggerGenerator(
     SwaggerGeneratorOptions options,
     ISchemaGenerator schemaGenerator,
     IServiceEntryManager serviceEntryManager)
 {
     _options             = options ?? new SwaggerGeneratorOptions();
     _schemaGenerator     = schemaGenerator;
     _serviceEntryManager = serviceEntryManager;
 }
Example #22
0
 public SchemaFilterContext(
     ApiModel apiModel,
     SchemaRepository schemaRepository,
     ISchemaGenerator schemaGenerator)
 {
     ApiModel         = apiModel;
     SchemaRepository = schemaRepository;
     SchemaGenerator  = schemaGenerator;
 }
Example #23
0
 public JsonDictionarySchemaGenerator(
     SchemaGeneratorOptions options,
     IContractResolver jsonContractResolver,
     ISchemaGenerator schemaGenerator)
 {
     _options = options;
     _jsonContractResolver = jsonContractResolver;
     _schemaGenerator      = schemaGenerator;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="SwashbuckleSchemaProvider"/> class.
 /// </summary>
 /// <param name="schemaRepository">Swashbuckle schema repository.</param>
 /// <param name="schemaGenerator">Swashbuckle schema generator.</param>
 /// <param name="schemaIdSelector">Swashbuckle schemaId selector.</param>
 public SwashbuckleSchemaProvider(
     SchemaRepository schemaRepository,
     ISchemaGenerator schemaGenerator,
     Func <Type, string>?schemaIdSelector = null)
 {
     _schemaRepository = schemaRepository;
     _schemaGenerator  = schemaGenerator;
     _schemaIdSelector = schemaIdSelector ?? DefaultSchemaIdSelector;
 }
 protected SchemaGeneratorHandler(
     SchemaGeneratorOptions schemaGeneratorOptions,
     ISchemaGenerator schemaGenerator,
     JsonSerializerSettings jsonSerializerSettings)
 {
     SchemaGeneratorOptions = schemaGeneratorOptions;
     SchemaGenerator = schemaGenerator;
     JsonSerializerSettings = jsonSerializerSettings;
 }
Example #26
0
 public ObjectSchemaGenerator(
     IContractResolver contractResolver,
     ISchemaGenerator rootGenerator,
     JsonSerializerSettings serializerSettings,
     SchemaGeneratorOptions options)
     : base(contractResolver, rootGenerator, options)
 {
     _serializerSettings = serializerSettings;
 }
 public SwaggerGenerator(
     IApiDescriptionGroupCollectionProvider apiDescriptionsProvider,
     ISchemaGenerator schemaGenerator,
     SwaggerGeneratorOptions options)
 {
     _apiDescriptionsProvider = apiDescriptionsProvider;
     _schemaGenerator         = schemaGenerator;
     _options = options ?? new SwaggerGeneratorOptions();
 }
Example #28
0
 OpenApiParameter GenerateTenantIdParameter(ISchemaGenerator schemaGenerator, SchemaRepository repository)
 {
     return(new OpenApiParameter
     {
         Name = "Tenant-ID",
         In = ParameterLocation.Header,
         Required = true,
         Schema = schemaGenerator.GenerateSchema(typeof(TenantId), repository),
     });
 }
 public void AddAdditionalSchemas(ISchemaGenerator schemaGenerator, SchemaRepository schemaRepository)
 {
     foreach (var model in _listModels
              .Where(x => !schemaRepository.Schemas
                     .Select(schema => schema.Key.ToLower())
                     .Contains(x.Name.ToLower())))
     {
         schemaGenerator.GenerateSchema(model, schemaRepository);
     }
 }
 public void TestInitialize()
 {
     _operation = new OpenApiOperation
     {
         Parameters = new List <OpenApiParameter>()
     };
     _functionMethodTestSource1 = new FunctionMethodTestSource1();
     _schemaRegistry            = A.Fake <ISchemaGenerator>();
     _schemaRepository          = new SchemaRepository();
 }