From bcc533e4fc2071aff3ae898fb2f44e98df30cb41 Mon Sep 17 00:00:00 2001 From: Safia Abdalla Date: Mon, 15 Aug 2022 17:44:55 +0000 Subject: [PATCH 1/2] Set DateOnly as string type with date format in schema --- .../SchemaGenerator/NewtonsoftDataContractResolver.cs | 5 ++++- .../SchemaGenerator/JsonSerializerDataContractResolver.cs | 5 ++++- .../SchemaGenerator/JsonSerializerSchemaGeneratorTests.cs | 2 ++ 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/Swashbuckle.AspNetCore.Newtonsoft/SchemaGenerator/NewtonsoftDataContractResolver.cs b/src/Swashbuckle.AspNetCore.Newtonsoft/SchemaGenerator/NewtonsoftDataContractResolver.cs index f69b51b256..61bf383478 100644 --- a/src/Swashbuckle.AspNetCore.Newtonsoft/SchemaGenerator/NewtonsoftDataContractResolver.cs +++ b/src/Swashbuckle.AspNetCore.Newtonsoft/SchemaGenerator/NewtonsoftDataContractResolver.cs @@ -207,7 +207,10 @@ [ typeof(DateTime) ] = Tuple.Create(DataType.String, "date-time"), [ typeof(DateTimeOffset) ] = Tuple.Create(DataType.String, "date-time"), [ typeof(Guid) ] = Tuple.Create(DataType.String, "uuid"), [ typeof(Uri) ] = Tuple.Create(DataType.String, "uri"), - [ typeof(TimeSpan) ] = Tuple.Create(DataType.String, "date-span") + [ typeof(TimeSpan) ] = Tuple.Create(DataType.String, "date-span"), +#if NET6_0_OR_GREATER + [ typeof(DateOnly) ] = Tuple.Create(DataType.String, "date") +#endif }; } } diff --git a/src/Swashbuckle.AspNetCore.SwaggerGen/SchemaGenerator/JsonSerializerDataContractResolver.cs b/src/Swashbuckle.AspNetCore.SwaggerGen/SchemaGenerator/JsonSerializerDataContractResolver.cs index 4f1793d012..c711c6fa7d 100644 --- a/src/Swashbuckle.AspNetCore.SwaggerGen/SchemaGenerator/JsonSerializerDataContractResolver.cs +++ b/src/Swashbuckle.AspNetCore.SwaggerGen/SchemaGenerator/JsonSerializerDataContractResolver.cs @@ -241,7 +241,10 @@ [ typeof(char) ] = Tuple.Create(DataType.String, (string)null), [ typeof(DateTime) ] = Tuple.Create(DataType.String, "date-time"), [ typeof(DateTimeOffset) ] = Tuple.Create(DataType.String, "date-time"), [ typeof(Guid) ] = Tuple.Create(DataType.String, "uuid"), - [ typeof(Uri) ] = Tuple.Create(DataType.String, "uri") + [ typeof(Uri) ] = Tuple.Create(DataType.String, "uri"), +#if NET6_0_OR_GREATER + [ typeof(DateOnly) ] = Tuple.Create(DataType.String, "date") +#endif }; } } diff --git a/test/Swashbuckle.AspNetCore.SwaggerGen.Test/SchemaGenerator/JsonSerializerSchemaGeneratorTests.cs b/test/Swashbuckle.AspNetCore.SwaggerGen.Test/SchemaGenerator/JsonSerializerSchemaGeneratorTests.cs index 6f2d1e7227..ec7a27a9a8 100644 --- a/test/Swashbuckle.AspNetCore.SwaggerGen.Test/SchemaGenerator/JsonSerializerSchemaGeneratorTests.cs +++ b/test/Swashbuckle.AspNetCore.SwaggerGen.Test/SchemaGenerator/JsonSerializerSchemaGeneratorTests.cs @@ -51,10 +51,12 @@ public void GenerateSchema_GeneratesFileSchema_IfFormFileOrFileResultType(Type t [InlineData(typeof(DateTimeOffset), "string", "date-time")] [InlineData(typeof(Guid), "string", "uuid")] [InlineData(typeof(Uri), "string", "uri")] + [InlineData(typeof(DateOnly), "string", "date")] [InlineData(typeof(bool?), "boolean", null)] [InlineData(typeof(int?), "integer", "int32")] [InlineData(typeof(DateTime?), "string", "date-time")] [InlineData(typeof(Guid?), "string", "uuid")] + [InlineData(typeof(DateOnly?), "string", "date")] public void GenerateSchema_GeneratesPrimitiveSchema_IfPrimitiveOrNullablePrimitiveType( Type type, string expectedSchemaType, From d9f20174ae44d031dc0aacb4cb3fcf0679dd3f8d Mon Sep 17 00:00:00 2001 From: Safia Abdalla Date: Wed, 7 Sep 2022 19:09:20 +0000 Subject: [PATCH 2/2] Add support for TimeOnly --- .../SchemaGenerator/NewtonsoftDataContractResolver.cs | 3 ++- .../SchemaGenerator/JsonSerializerDataContractResolver.cs | 3 ++- .../SchemaGenerator/JsonSerializerSchemaGeneratorTests.cs | 2 ++ 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/Swashbuckle.AspNetCore.Newtonsoft/SchemaGenerator/NewtonsoftDataContractResolver.cs b/src/Swashbuckle.AspNetCore.Newtonsoft/SchemaGenerator/NewtonsoftDataContractResolver.cs index 61bf383478..3dc2bd55eb 100644 --- a/src/Swashbuckle.AspNetCore.Newtonsoft/SchemaGenerator/NewtonsoftDataContractResolver.cs +++ b/src/Swashbuckle.AspNetCore.Newtonsoft/SchemaGenerator/NewtonsoftDataContractResolver.cs @@ -209,7 +209,8 @@ [ typeof(Guid) ] = Tuple.Create(DataType.String, "uuid"), [ typeof(Uri) ] = Tuple.Create(DataType.String, "uri"), [ typeof(TimeSpan) ] = Tuple.Create(DataType.String, "date-span"), #if NET6_0_OR_GREATER - [ typeof(DateOnly) ] = Tuple.Create(DataType.String, "date") + [ typeof(DateOnly) ] = Tuple.Create(DataType.String, "date"), + [ typeof(TimeOnly) ] = Tuple.Create(DataType.String, "time") #endif }; } diff --git a/src/Swashbuckle.AspNetCore.SwaggerGen/SchemaGenerator/JsonSerializerDataContractResolver.cs b/src/Swashbuckle.AspNetCore.SwaggerGen/SchemaGenerator/JsonSerializerDataContractResolver.cs index c711c6fa7d..073f63c04f 100644 --- a/src/Swashbuckle.AspNetCore.SwaggerGen/SchemaGenerator/JsonSerializerDataContractResolver.cs +++ b/src/Swashbuckle.AspNetCore.SwaggerGen/SchemaGenerator/JsonSerializerDataContractResolver.cs @@ -243,7 +243,8 @@ [ typeof(DateTimeOffset) ] = Tuple.Create(DataType.String, "date-time"), [ typeof(Guid) ] = Tuple.Create(DataType.String, "uuid"), [ typeof(Uri) ] = Tuple.Create(DataType.String, "uri"), #if NET6_0_OR_GREATER - [ typeof(DateOnly) ] = Tuple.Create(DataType.String, "date") + [ typeof(DateOnly) ] = Tuple.Create(DataType.String, "date"), + [ typeof(TimeOnly) ] = Tuple.Create(DataType.String, "time") #endif }; } diff --git a/test/Swashbuckle.AspNetCore.SwaggerGen.Test/SchemaGenerator/JsonSerializerSchemaGeneratorTests.cs b/test/Swashbuckle.AspNetCore.SwaggerGen.Test/SchemaGenerator/JsonSerializerSchemaGeneratorTests.cs index ec7a27a9a8..fb7a219506 100644 --- a/test/Swashbuckle.AspNetCore.SwaggerGen.Test/SchemaGenerator/JsonSerializerSchemaGeneratorTests.cs +++ b/test/Swashbuckle.AspNetCore.SwaggerGen.Test/SchemaGenerator/JsonSerializerSchemaGeneratorTests.cs @@ -52,11 +52,13 @@ public void GenerateSchema_GeneratesFileSchema_IfFormFileOrFileResultType(Type t [InlineData(typeof(Guid), "string", "uuid")] [InlineData(typeof(Uri), "string", "uri")] [InlineData(typeof(DateOnly), "string", "date")] + [InlineData(typeof(TimeOnly), "string", "time")] [InlineData(typeof(bool?), "boolean", null)] [InlineData(typeof(int?), "integer", "int32")] [InlineData(typeof(DateTime?), "string", "date-time")] [InlineData(typeof(Guid?), "string", "uuid")] [InlineData(typeof(DateOnly?), "string", "date")] + [InlineData(typeof(TimeOnly?), "string", "time")] public void GenerateSchema_GeneratesPrimitiveSchema_IfPrimitiveOrNullablePrimitiveType( Type type, string expectedSchemaType,