public OpenApiDocument Generate(HttpContext httpContext, IAppEntity app, IEnumerable <ISchemaEntity> schemas) { document = NSwagHelper.CreateApiDocument(httpContext, urlOptions, app.Name); schemaGenerator = new OpenApiSchemaGenerator(settings); schemaResolver = new OpenApiSchemaResolver(document, settings); statusSchema = GenerateStatusSchema(); GenerateSchemasOperations(schemas, app); var context = new DocumentProcessorContext(document, Enumerable.Empty <Type>(), Enumerable.Empty <Type>(), schemaResolver, schemaGenerator, settings); foreach (var processor in settings.DocumentProcessors) { processor.Process(context); } return(document); }
private AspNetCoreOperationProcessorContext GetContext(ApiDescription apiDescription) { var operationDescription = new OpenApiOperationDescription { Operation = new OpenApiOperation() }; var swaggerSettings = new AspNetCoreOpenApiDocumentGeneratorSettings(); var document = new OpenApiDocument(); var schemaGeneratorSettings = new OpenApiDocumentGeneratorSettings(); var schemaGenerator = new OpenApiSchemaGenerator(schemaGeneratorSettings); var schemaResolver = new OpenApiSchemaResolver(document, schemaGeneratorSettings); swaggerSettings.SchemaGenerator = schemaGenerator; var context = new AspNetCoreOperationProcessorContext( document, operationDescription, GetType(), GetType().GetMethod(nameof(SomeAction), BindingFlags.NonPublic | BindingFlags.Instance), new OpenApiDocumentGenerator(swaggerSettings, schemaResolver), schemaGenerator, schemaResolver, swaggerSettings, new List <OpenApiOperationDescription>()) { ApiDescription = apiDescription, }; return(context); }
public void CanGenerateSchemaForListTypes(Type type) { var schema = OpenApiSchemaGenerator.GetOpenApiSchema(type); Assert.NotNull(schema); Assert.Equal("array", schema.Type); }
public void CanGenerateCorrectSchemaForDictionaryTypes(Type type) { var schema = OpenApiSchemaGenerator.GetOpenApiSchema(type); Assert.NotNull(schema); Assert.Equal("object", schema.Type); }
public void CanGenerateSchemaForDateSpanTypes() { var schema = OpenApiSchemaGenerator.GetOpenApiSchema(typeof(TimeSpan)); Assert.NotNull(schema); Assert.Equal("string", schema.Type); Assert.Equal("date-span", schema.Format); }
public void CanGenerateSchemaForDateTimeTypes(Type type) { var schema = OpenApiSchemaGenerator.GetOpenApiSchema(type); Assert.NotNull(schema); Assert.Equal("string", schema.Type); Assert.Equal("date-time", schema.Format); }
public SchemasOpenApiGenerator( IUrlGenerator urlGenerator, OpenApiDocumentGeneratorSettings schemaSettings, OpenApiSchemaGenerator schemaGenerator, IRequestCache requestCache) { this.urlGenerator = urlGenerator; this.schemaSettings = schemaSettings; this.schemaGenerator = schemaGenerator; this.requestCache = requestCache; }
internal Builder(IAppEntity app, OpenApiDocument document, OpenApiSchemaResolver schemaResolver, OpenApiSchemaGenerator schemaGenerator) { Document = document; AppName = app.Name; ChangeStatusSchema = schemaGenerator.GenerateWithReference <JsonSchema>(typeof(ChangeStatusDto).ToContextualType(), schemaResolver); }