コード例 #1
0
ファイル: SwaggerSchemaResolver.cs プロジェクト: NSwag/NSwag
        /// <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;
        }
コード例 #2
0
        /// <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);
        }
コード例 #3
0
        /// <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));
        }
コード例 #4
0
        /// <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)));
        }
コード例 #5
0
        /// <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);
        }
コード例 #6
0
        /// <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));
        }
コード例 #7
0
 /// <summary>Initializes a new instance of the <see cref="JsonSchemaResolver" /> class.</summary>
 /// <param name="settings">The settings.</param>
 public JsonSchemaResolver(JsonSchemaGeneratorSettings settings)
 {
     _settings = settings;
 }
コード例 #8
0
ファイル: SwaggerDocument.cs プロジェクト: NSwag/NSwag
        /// <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);
        }
コード例 #9
0
        /// <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()));
        }
コード例 #10
0
        /// <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()));
        }
コード例 #11
0
        /// <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()));
        }
コード例 #12
0
 /// <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;
 }
コード例 #13
0
ファイル: CodeGenerationTests.cs プロジェクト: NSwag/NSwag
        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;
        }
コード例 #14
0
ファイル: JsonSchema4.cs プロジェクト: nickcox/NJsonSchema
        /// <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));
        }
コード例 #15
0
ファイル: SwaggerGenerator.cs プロジェクト: NSwag/NSwag
 /// <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;
 }
コード例 #16
0
 /// <summary>Initializes a new instance of the <see cref="JsonSchemaGenerator"/> class.</summary>
 /// <param name="settings">The settings.</param>
 public JsonSchemaGenerator(JsonSchemaGeneratorSettings settings)
 {
     Settings = settings;
 }
コード例 #17
0
 /// <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;
 }