/// <summary>Initializes a new instance of the <see cref="SwaggerSchemaResolver" /> class.</summary> /// <param name="document">The Swagger document.</param> /// <param name="settings">The settings.</param> /// <exception cref="ArgumentNullException"><paramref name="document" /> is <see langword="null" /></exception> public SwaggerSchemaResolver(SwaggerDocument document, JsonSchemaGeneratorSettings settings) : base(settings) { if (document == null) throw new ArgumentNullException(nameof(document)); _document = document; _typeNameGenerator = settings.TypeNameGenerator; }
/// <summary>Serializes the <see cref="JsonSchema4" /> to a JSON string.</summary> /// <param name="settings">The settings.</param> /// <returns>The JSON string.</returns> public string ToJson(JsonSchemaGeneratorSettings settings) { var oldSchema = SchemaVersion; SchemaVersion = "http://json-schema.org/draft-04/schema#"; JsonSchemaReferenceUtilities.UpdateSchemaReferencePaths(this); var json = JsonSchemaReferenceUtilities.ConvertPropertyReferences(JsonConvert.SerializeObject(this, Formatting.Indented)); SchemaVersion = oldSchema; return(json); }
/// <summary>Creates a <see cref="JsonSchema4" /> from a given type.</summary> /// <typeparam name="TType">The type to create the schema for.</typeparam> /// <param name="settings">The settings.</param> /// <returns>The <see cref="JsonSchema4" />.</returns> public static async Task <JsonSchema4> FromTypeAsync <TType>(JsonSchemaGeneratorSettings settings) { var generator = new JsonSchemaGenerator(settings); return(await generator.GenerateAsync(typeof(TType)).ConfigureAwait(false)); }
/// <summary>Creates a <see cref="JsonSchema" /> from a given type.</summary> /// <typeparam name="TType">The type to create the schema for.</typeparam> /// <param name="settings">The settings.</param> /// <returns>The <see cref="JsonSchema" />.</returns> public static JsonSchema FromType <TType>(JsonSchemaGeneratorSettings settings) { var generator = new JsonSchemaGenerator(settings); return(generator.Generate(typeof(TType))); }
/// <summary>Creates the factory to be used in the FromJsonAsync method.</summary> /// <param name="settings">The generator settings.</param> /// <returns>The factory.</returns> public static Func <JsonSchema4, JsonReferenceResolver> CreateJsonReferenceResolverFactory(JsonSchemaGeneratorSettings settings) { JsonReferenceResolver ReferenceResolverFactory(JsonSchema4 schema) => new JsonReferenceResolver(new JsonSchemaResolver(schema, settings)); return(ReferenceResolverFactory); }
/// <summary>Serializes the <see cref="JsonSchema4" /> to a JSON string.</summary> /// <returns>The JSON string.</returns> public string ToJson() { var settings = new JsonSchemaGeneratorSettings(); return(ToJson(settings)); }
/// <summary>Initializes a new instance of the <see cref="JsonSchemaResolver" /> class.</summary> /// <param name="settings">The settings.</param> public JsonSchemaResolver(JsonSchemaGeneratorSettings settings) { _settings = settings; }
/// <summary>Converts the description object to JSON.</summary> /// <param name="jsonSchemaGenerator">The json schema generator.</param> /// <returns>The JSON string.</returns> public string ToJson(JsonSchemaGeneratorSettings jsonSchemaGenerator) { var settings = new JsonSerializerSettings { PreserveReferencesHandling = PreserveReferencesHandling.None, Formatting = Formatting.Indented }; GenerateOperationIds(); JsonSchemaReferenceUtilities.UpdateSchemaReferencePaths(this, new SwaggerSchemaResolver(this, jsonSchemaGenerator)); var data = JsonConvert.SerializeObject(this, settings); JsonSchemaReferenceUtilities.UpdateSchemaReferences(this); return JsonSchemaReferenceUtilities.ConvertPropertyReferences(data); }
/// <summary>Creates a <see cref="JsonSchema4" /> from a given type.</summary> /// <param name="type">The type to create the schema for.</param> /// <param name="settings">The settings.</param> /// <returns>The <see cref="JsonSchema4" />.</returns> public static JsonSchema4 FromType(Type type, JsonSchemaGeneratorSettings settings) { var generator = new JsonSchemaGenerator(settings); return(generator.Generate(type, null, null, new JsonSchemaDefinitionAppender(settings.TypeNameGenerator), new SchemaResolver())); }
/// <summary>Creates a <see cref="JsonSchema4" /> from a given type.</summary> /// <typeparam name="TType">The type to create the schema for.</typeparam> /// <param name="settings">The settings.</param> /// <returns>The <see cref="JsonSchema4" />.</returns> public static JsonSchema4 FromType <TType>(JsonSchemaGeneratorSettings settings) { var generator = new JsonSchemaGenerator(settings); return(generator.Generate(typeof(TType), null, null, new JsonSchemaDefinitionAppender(), new SchemaResolver())); }
/// <summary>Creates a <see cref="JsonSchema4" /> from a given type.</summary> /// <param name="type">The type to create the schema for.</param> /// <param name="settings">The settings.</param> /// <returns>The <see cref="JsonSchema4" />.</returns> public static JsonSchema4 FromType(Type type, JsonSchemaGeneratorSettings settings) { var generator = new JsonSchemaGenerator(settings); return(generator.Generate <JsonSchema4>(type, new SchemaResolver())); }
/// <summary>Initializes a new instance of the <see cref="WebApiAssemblyToSwaggerGenerator" /> class.</summary> /// <param name="assemblyPath">The assembly path.</param> /// <param name="jsonSchemaGeneratorSettings">The json schema generator settings.</param> public WebApiAssemblyToSwaggerGenerator(string assemblyPath, JsonSchemaGeneratorSettings jsonSchemaGeneratorSettings) { _assemblyPath = assemblyPath; JsonSchemaGeneratorSettings = jsonSchemaGeneratorSettings; }
private static SwaggerDocument CreateService() { var document = new SwaggerDocument(); var settings = new JsonSchemaGeneratorSettings(); var generator = new JsonSchemaGenerator(settings); document.Paths["/Person"] = new SwaggerOperations(); document.Paths["/Person"][SwaggerOperationMethod.Get] = new SwaggerOperation { Responses = new Dictionary<string, SwaggerResponse> { { "200", new SwaggerResponse { Schema = new JsonSchema4 { SchemaReference = generator.Generate(typeof(Person), new SwaggerSchemaResolver(document, settings)) } } } } }; return document; }
/// <summary>Creates a <see cref="JsonSchema4" /> from a given type.</summary> /// <param name="type">The type to create the schema for.</param> /// <param name="settings">The settings.</param> /// <returns>The <see cref="JsonSchema4" />.</returns> public static JsonSchema4 FromType(Type type, JsonSchemaGeneratorSettings settings) { var generator = new JsonSchemaGenerator(settings); return(generator.Generate(type)); }
/// <summary>Initializes a new instance of the <see cref="SwaggerGenerator"/> class.</summary> /// <param name="schemaGenerator">The schema generator.</param> /// <param name="schemaGeneratorSettings">The schema generator settings.</param> /// <param name="schemaResolver">The schema resolver.</param> public SwaggerGenerator(JsonSchemaGenerator schemaGenerator, JsonSchemaGeneratorSettings schemaGeneratorSettings, JsonSchemaResolver schemaResolver) { _schemaResolver = schemaResolver; _schemaGenerator = schemaGenerator; _settings = schemaGeneratorSettings; }
/// <summary>Initializes a new instance of the <see cref="JsonSchemaGenerator"/> class.</summary> /// <param name="settings">The settings.</param> public JsonSchemaGenerator(JsonSchemaGeneratorSettings settings) { Settings = settings; }
/// <summary>Initializes a new instance of the <see cref="JsonSchemaResolver" /> class.</summary> /// <param name="rootObject">The root schema.</param> /// <param name="settings">The settings.</param> public JsonSchemaResolver(object rootObject, JsonSchemaGeneratorSettings settings) { _settings = settings; RootObject = rootObject; }