Skip to content

Commit 3134d5c

Browse files
authored
Move from APIWeaver.OpenApi to OpenApi.Extensions (#197)
1 parent ccc8839 commit 3134d5c

File tree

6 files changed

+43
-28
lines changed

6 files changed

+43
-28
lines changed

src/Api/Api.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
<Project Sdk="Microsoft.NET.Sdk.Web">
22
<ItemGroup>
33
<ProjectReference Include="..\Services\Services.csproj" />
4-
<PackageReference Include="APIWeaver.OpenApi" />
54
<PackageReference Include="Azure.Extensions.AspNetCore.Configuration.Secrets" />
65
<PackageReference Include="Azure.Identity" />
76
<PackageReference Include="Asp.Versioning.Mvc.ApiExplorer" />
87
<PackageReference Include="DotNetEnv" />
8+
<PackageReference Include="MartinCostello.OpenApi.Extensions" />
99
<PackageReference Include="Microsoft.ApplicationInsights.AspNetCore" />
1010
<PackageReference Include="Microsoft.AspNetCore.OpenApi" />
1111
<PackageReference Include="Microsoft.Extensions.Logging.ApplicationInsights" />

src/Api/Setup/ApiServices.cs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
using System.Text.Json;
22
using System.Text.Json.Serialization;
33
using System.Threading.RateLimiting;
4-
using APIWeaver;
54
using Asp.Versioning;
5+
using MartinCostello.OpenApi;
66
using Microsoft.AspNetCore.Http.Json;
77
using Microsoft.AspNetCore.Server.Kestrel.Core;
88
using Serilog;
@@ -42,8 +42,11 @@ public static void ConfigureServices(this IServiceCollection services)
4242
opt.OpenApiVersion = Microsoft.OpenApi.OpenApiSpecVersion.OpenApi3_0;
4343
});
4444

45-
services.AddApiWeaver(opt =>
45+
services.AddOpenApiExtensions(opt =>
4646
{
47+
opt.AddServerUrls = false;
48+
opt.AddExamples = true;
49+
opt.SerializationContexts.Add(DateOnlyJsonSerializerContext.Default);
4750
opt.AddExample<DateOnly, DateOnlyExampleProvider>();
4851
});
4952

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,18 @@
1-
using APIWeaver;
1+
2+
using System.Text.Json.Serialization;
3+
using MartinCostello.OpenApi;
24

35
namespace Api.Setup;
46

57
public sealed class DateOnlyExampleProvider : IExampleProvider<DateOnly>
68
{
7-
public static DateOnly GetExample() => DateOnly.FromDateTime(DateTime.UtcNow);
9+
public static DateOnly GenerateExample() => DateOnly.FromDateTime(DateTime.UtcNow);
810
}
11+
12+
[JsonSerializable(typeof(DateOnly))]
13+
[JsonSourceGenerationOptions(
14+
DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull,
15+
NumberHandling = JsonNumberHandling.Strict,
16+
PropertyNamingPolicy = JsonKnownNamingPolicy.CamelCase,
17+
WriteIndented = true)]
18+
public sealed partial class DateOnlyJsonSerializerContext : JsonSerializerContext;

src/Api/packages.lock.json

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,6 @@
22
"version": 2,
33
"dependencies": {
44
"net9.0": {
5-
"APIWeaver.OpenApi": {
6-
"type": "Direct",
7-
"requested": "[2.7.0, )",
8-
"resolved": "2.7.0",
9-
"contentHash": "XrHa+EXyUyQ1y01/XdyEFBQbaQCJH2gpycUcKWIIkQq17T0k0mJ6DYhsOgV1nNlSuq2+LvbeM3o7H+Xr846W3g==",
10-
"dependencies": {
11-
"Microsoft.AspNetCore.OpenApi": "9.0.0"
12-
}
13-
},
145
"Asp.Versioning.Mvc.ApiExplorer": {
156
"type": "Direct",
167
"requested": "[8.1.0, )",
@@ -56,6 +47,16 @@
5647
"System.Text.RegularExpressions": "4.3.1"
5748
}
5849
},
50+
"MartinCostello.OpenApi.Extensions": {
51+
"type": "Direct",
52+
"requested": "[1.1.0, )",
53+
"resolved": "1.1.0",
54+
"contentHash": "xBkrm2YVSyb7dmFb+5ZFLl1O/bkqfjzqbIfS/hCAJBdWOEkmfnQHzMwO9qt9QiI1wd45VOtGUAwR+E35nwSjlQ==",
55+
"dependencies": {
56+
"Microsoft.AspNetCore.OpenApi": "9.0.0",
57+
"Microsoft.OpenApi": "1.6.23"
58+
}
59+
},
5960
"Microsoft.ApplicationInsights.AspNetCore": {
6061
"type": "Direct",
6162
"requested": "[2.23.0, )",
@@ -573,8 +574,8 @@
573574
},
574575
"Microsoft.OpenApi": {
575576
"type": "Transitive",
576-
"resolved": "1.6.17",
577-
"contentHash": "Le+kehlmrlQfuDFUt1zZ2dVwrhFQtKREdKBo+rexOwaCoYP0/qpgT9tLxCsZjsgR5Itk1UKPcbgO+FyaNid/bA=="
577+
"resolved": "1.6.23",
578+
"contentHash": "tZ1I0KXnn98CWuV8cpI247A17jaY+ILS9vvF7yhI0uPPEqF4P1d7BWL5Uwtel10w9NucllHB3nTkfYTAcHAh8g=="
578579
},
579580
"Microsoft.Win32.Primitives": {
580581
"type": "Transitive",

src/Directory.Packages.props

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,11 @@
44
<CentralPackageTransitivePinningEnabled>true</CentralPackageTransitivePinningEnabled>
55
</PropertyGroup>
66
<ItemGroup>
7-
<PackageVersion Include="APIWeaver.OpenApi" Version="2.7.0" />
87
<PackageVersion Include="Azure.Extensions.AspNetCore.Configuration.Secrets" Version="1.4.0" />
98
<PackageVersion Include="Azure.Identity" Version="1.15.0" />
109
<PackageVersion Include="Asp.Versioning.Mvc.ApiExplorer" Version="8.1.0" />
1110
<PackageVersion Include="DotNetEnv" Version="3.1.1" />
11+
<PackageVersion Include="MartinCostello.OpenApi.Extensions" Version="1.1.0" />
1212
<PackageVersion Include="Microsoft.ApplicationInsights.AspNetCore" Version="2.23.0" />
1313
<PackageVersion Include="Microsoft.AspNetCore.OpenApi" Version="9.0.8" />
1414
<PackageVersion Include="Microsoft.AspNetCore.WebUtilities" Version="9.0.8" />

tests/IntegrationTests/packages.lock.json

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -68,14 +68,6 @@
6868
"xunit.v3.core": "[3.0.1]"
6969
}
7070
},
71-
"APIWeaver.OpenApi": {
72-
"type": "Transitive",
73-
"resolved": "2.7.0",
74-
"contentHash": "XrHa+EXyUyQ1y01/XdyEFBQbaQCJH2gpycUcKWIIkQq17T0k0mJ6DYhsOgV1nNlSuq2+LvbeM3o7H+Xr846W3g==",
75-
"dependencies": {
76-
"Microsoft.AspNetCore.OpenApi": "9.0.0"
77-
}
78-
},
7971
"Asp.Versioning.Abstractions": {
8072
"type": "Transitive",
8173
"resolved": "8.1.0",
@@ -176,6 +168,15 @@
176168
"resolved": "4.4.0",
177169
"contentHash": "gwJEfIGS7FhykvtZoscwXj/XwW+mJY6UbAZk+qtLKFUGWC95kfKXnj8VkxsZQnWBxJemM/q664rGLN5nf+OHZw=="
178170
},
171+
"MartinCostello.OpenApi.Extensions": {
172+
"type": "Transitive",
173+
"resolved": "1.1.0",
174+
"contentHash": "xBkrm2YVSyb7dmFb+5ZFLl1O/bkqfjzqbIfS/hCAJBdWOEkmfnQHzMwO9qt9QiI1wd45VOtGUAwR+E35nwSjlQ==",
175+
"dependencies": {
176+
"Microsoft.AspNetCore.OpenApi": "9.0.0",
177+
"Microsoft.OpenApi": "1.6.23"
178+
}
179+
},
179180
"Microsoft.ApplicationInsights": {
180181
"type": "Transitive",
181182
"resolved": "2.23.0",
@@ -741,8 +742,8 @@
741742
},
742743
"Microsoft.OpenApi": {
743744
"type": "Transitive",
744-
"resolved": "1.6.17",
745-
"contentHash": "Le+kehlmrlQfuDFUt1zZ2dVwrhFQtKREdKBo+rexOwaCoYP0/qpgT9tLxCsZjsgR5Itk1UKPcbgO+FyaNid/bA=="
745+
"resolved": "1.6.23",
746+
"contentHash": "tZ1I0KXnn98CWuV8cpI247A17jaY+ILS9vvF7yhI0uPPEqF4P1d7BWL5Uwtel10w9NucllHB3nTkfYTAcHAh8g=="
746747
},
747748
"Microsoft.Testing.Extensions.TrxReport.Abstractions": {
748749
"type": "Transitive",
@@ -1947,11 +1948,11 @@
19471948
"api": {
19481949
"type": "Project",
19491950
"dependencies": {
1950-
"APIWeaver.OpenApi": "[2.7.0, )",
19511951
"Asp.Versioning.Mvc.ApiExplorer": "[8.1.0, )",
19521952
"Azure.Extensions.AspNetCore.Configuration.Secrets": "[1.4.0, )",
19531953
"Azure.Identity": "[1.15.0, )",
19541954
"DotNetEnv": "[3.1.1, )",
1955+
"MartinCostello.OpenApi.Extensions": "[1.1.0, )",
19551956
"Microsoft.ApplicationInsights.AspNetCore": "[2.23.0, )",
19561957
"Microsoft.AspNetCore.OpenApi": "[9.0.8, )",
19571958
"Microsoft.Extensions.Logging.ApplicationInsights": "[2.23.0, )",

0 commit comments

Comments
 (0)