Skip to content

Commit cdca6e0

Browse files
authored
Merge pull request #1546 from json-api-dotnet/merge-master-into-openapi
Merge master into openapi
2 parents 9bdea37 + 96cb1dc commit cdca6e0

File tree

630 files changed

+12666
-5648
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

630 files changed

+12666
-5648
lines changed

.config/dotnet-tools.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
"isRoot": true,
44
"tools": {
55
"jetbrains.resharper.globaltools": {
6-
"version": "2024.1.0",
6+
"version": "2024.1.2",
77
"commands": [
88
"jb"
99
]
@@ -15,7 +15,7 @@
1515
]
1616
},
1717
"dotnet-reportgenerator-globaltool": {
18-
"version": "5.2.4",
18+
"version": "5.3.0",
1919
"commands": [
2020
"reportgenerator"
2121
]
@@ -27,7 +27,7 @@
2727
]
2828
},
2929
"microsoft.openapi.kiota": {
30-
"version": "1.11.1",
30+
"version": "1.14.0",
3131
"commands": [
3232
"kiota"
3333
]

.github/workflows/build.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ jobs:
3838
- name: Tune GitHub-hosted runner network
3939
uses: smorimoto/tune-github-hosted-runner-network@v1
4040
- name: Setup PostgreSQL
41-
uses: ikalnytskyi/action-setup-postgres@v5
41+
uses: ikalnytskyi/action-setup-postgres@v6
4242
with:
4343
username: postgres
4444
password: postgres
@@ -302,7 +302,7 @@ jobs:
302302
dotnet nuget push "$env:GITHUB_WORKSPACE/packages/*.nupkg" --api-key "$env:GITHUB_TOKEN" --source 'github'
303303
- name: Publish documentation
304304
if: github.event_name == 'push' && github.ref == 'refs/heads/master'
305-
uses: peaceiris/actions-gh-pages@v3
305+
uses: peaceiris/actions-gh-pages@v4
306306
with:
307307
github_token: ${{ secrets.GITHUB_TOKEN }}
308308
publish_branch: gh-pages

.github/workflows/qodana.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ jobs:
2222
ref: ${{ github.event.pull_request.head.sha }} # to check out the actual pull request commit, not the merge commit
2323
fetch-depth: 0 # a full history is required for pull request analysis
2424
- name: 'Qodana Scan'
25-
uses: JetBrains/qodana-action@v2023.3
25+
uses: JetBrains/qodana-action@v2024.1
2626
env:
2727
QODANA_TOKEN: ${{ secrets.QODANA_TOKEN }}
2828
- name: Upload results to artifacts on failure

package-versions.props

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
<ApiDescriptionServerVersion>8.0.*</ApiDescriptionServerVersion>
1212
<BenchmarkDotNetVersion>0.13.*</BenchmarkDotNetVersion>
1313
<BlushingPenguinVersion>1.0.*</BlushingPenguinVersion>
14-
<BogusVersion>35.2.*</BogusVersion>
14+
<BogusVersion>35.5.*</BogusVersion>
1515
<CodeAnalysisVersion>4.9.*</CodeAnalysisVersion>
1616
<CoverletVersion>6.0.*</CoverletVersion>
1717
<DapperVersion>2.1.*</DapperVersion>
@@ -23,10 +23,9 @@
2323
<NSwagApiClientVersion>13.20.*</NSwagApiClientVersion>
2424
<NewtonsoftJsonVersion>13.0.*</NewtonsoftJsonVersion>
2525
<SourceLinkVersion>8.0.*</SourceLinkVersion>
26-
<SwashbuckleVersion>6.5.*</SwashbuckleVersion>
27-
<TestSdkVersion>17.8.*</TestSdkVersion>
28-
<XunitVersion>2.6.*</XunitVersion>
29-
<XunitVisualStudioVersion>2.5.*</XunitVisualStudioVersion>
26+
<SwashbuckleVersion>6.6.*</SwashbuckleVersion>
27+
<TestSdkVersion>17.9.*</TestSdkVersion>
28+
<XunitVersion>2.8.*</XunitVersion>
3029
</PropertyGroup>
3130

3231
<PropertyGroup Condition="'$(TargetFramework)' == 'net8.0'">
@@ -35,7 +34,7 @@
3534

3635
<!-- Non-published dependencies (these are safe to update, won't cause a breaking change) -->
3736
<AspNetCoreVersion>8.0.*</AspNetCoreVersion>
38-
<EntityFrameworkCoreVersion>8.0.*-*</EntityFrameworkCoreVersion>
37+
<EntityFrameworkCoreVersion>8.0.*</EntityFrameworkCoreVersion>
3938
<SystemTextJsonVersion>$(AspNetCoreVersion)</SystemTextJsonVersion>
4039
</PropertyGroup>
4140

src/Examples/DapperExample/appsettings.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@
44
// docker run --rm --detach --name dapper-example-postgresql-db -e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=postgres -p 5432:5432 postgres:latest
55
// docker run --rm --detach --name dapper-example-postgresql-management --link dapper-example-postgresql-db:db -e [email protected] -e PGADMIN_DEFAULT_PASSWORD=postgres -p 5050:80 dpage/pgadmin4:latest
66
"DapperExamplePostgreSql": "Host=localhost;Database=DapperExample;User ID=postgres;Password=postgres;Include Error Detail=true",
7-
// docker run --rm --detach --name dapper-example-mysql-db -e MYSQL_ROOT_PASSWORD=mysql -e MYSQL_DATABASE=DapperExample -e MYSQL_USER=mysql -e MYSQL_PASSWORD=mysql -p 3306:3306 mysql:latest --default-authentication-plugin=mysql_native_password
7+
// docker run --rm --detach --name dapper-example-mysql-db -e MYSQL_ROOT_PASSWORD=mysql -e MYSQL_DATABASE=DapperExample -e MYSQL_USER=mysql -e MYSQL_PASSWORD=mysql -p 3306:3306 mysql:latest
88
// docker run --rm --detach --name dapper-example-mysql-management --link dapper-example-mysql-db:db -p 8081:80 phpmyadmin/phpmyadmin
9-
"DapperExampleMySql": "Host=localhost;Database=DapperExample;User ID=mysql;Password=mysql",
9+
"DapperExampleMySql": "Host=localhost;Database=DapperExample;User ID=mysql;Password=mysql;SSL Mode=None;AllowPublicKeyRetrieval=True",
1010
// docker run --rm --detach --name dapper-example-sqlserver -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=Passw0rd!" -p 1433:1433 mcr.microsoft.com/mssql/server:2022-latest
1111
"DapperExampleSqlServer": "Server=localhost;Database=DapperExample;User ID=sa;Password=Passw0rd!;TrustServerCertificate=true"
1212
},

src/Examples/OpenApiKiotaClientExample/GeneratedCode/Api/ApiRequestBuilder.cs

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -12,32 +12,38 @@ namespace OpenApiKiotaClientExample.GeneratedCode.Api {
1212
/// <summary>
1313
/// Builds and executes requests for operations under \api
1414
/// </summary>
15-
public class ApiRequestBuilder : BaseRequestBuilder {
15+
public class ApiRequestBuilder : BaseRequestBuilder
16+
{
1617
/// <summary>The people property</summary>
17-
public PeopleRequestBuilder People { get =>
18-
new PeopleRequestBuilder(PathParameters, RequestAdapter);
18+
public PeopleRequestBuilder People
19+
{
20+
get => new PeopleRequestBuilder(PathParameters, RequestAdapter);
1921
}
2022
/// <summary>The tags property</summary>
21-
public TagsRequestBuilder Tags { get =>
22-
new TagsRequestBuilder(PathParameters, RequestAdapter);
23+
public TagsRequestBuilder Tags
24+
{
25+
get => new TagsRequestBuilder(PathParameters, RequestAdapter);
2326
}
2427
/// <summary>The todoItems property</summary>
25-
public TodoItemsRequestBuilder TodoItems { get =>
26-
new TodoItemsRequestBuilder(PathParameters, RequestAdapter);
28+
public TodoItemsRequestBuilder TodoItems
29+
{
30+
get => new TodoItemsRequestBuilder(PathParameters, RequestAdapter);
2731
}
2832
/// <summary>
29-
/// Instantiates a new ApiRequestBuilder and sets the default values.
33+
/// Instantiates a new <see cref="ApiRequestBuilder"/> and sets the default values.
3034
/// </summary>
3135
/// <param name="pathParameters">Path parameters for the request</param>
3236
/// <param name="requestAdapter">The request adapter to use to execute the requests.</param>
33-
public ApiRequestBuilder(Dictionary<string, object> pathParameters, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/api", pathParameters) {
37+
public ApiRequestBuilder(Dictionary<string, object> pathParameters, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/api", pathParameters)
38+
{
3439
}
3540
/// <summary>
36-
/// Instantiates a new ApiRequestBuilder and sets the default values.
41+
/// Instantiates a new <see cref="ApiRequestBuilder"/> and sets the default values.
3742
/// </summary>
3843
/// <param name="rawUrl">The raw URL to use for the request builder.</param>
3944
/// <param name="requestAdapter">The request adapter to use to execute the requests.</param>
40-
public ApiRequestBuilder(string rawUrl, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/api", rawUrl) {
45+
public ApiRequestBuilder(string rawUrl, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/api", rawUrl)
46+
{
4147
}
4248
}
4349
}

src/Examples/OpenApiKiotaClientExample/GeneratedCode/Api/People/Item/AssignedTodoItems/AssignedTodoItemsRequestBuilder.cs

Lines changed: 39 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -12,35 +12,44 @@ namespace OpenApiKiotaClientExample.GeneratedCode.Api.People.Item.AssignedTodoIt
1212
/// <summary>
1313
/// Builds and executes requests for operations under \api\people\{id}\assignedTodoItems
1414
/// </summary>
15-
public class AssignedTodoItemsRequestBuilder : BaseRequestBuilder {
15+
public class AssignedTodoItemsRequestBuilder : BaseRequestBuilder
16+
{
1617
/// <summary>
17-
/// Instantiates a new AssignedTodoItemsRequestBuilder and sets the default values.
18+
/// Instantiates a new <see cref="AssignedTodoItemsRequestBuilder"/> and sets the default values.
1819
/// </summary>
1920
/// <param name="pathParameters">Path parameters for the request</param>
2021
/// <param name="requestAdapter">The request adapter to use to execute the requests.</param>
21-
public AssignedTodoItemsRequestBuilder(Dictionary<string, object> pathParameters, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/api/people/{id}/assignedTodoItems{?query*}", pathParameters) {
22+
public AssignedTodoItemsRequestBuilder(Dictionary<string, object> pathParameters, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/api/people/{id}/assignedTodoItems{?query*}", pathParameters)
23+
{
2224
}
2325
/// <summary>
24-
/// Instantiates a new AssignedTodoItemsRequestBuilder and sets the default values.
26+
/// Instantiates a new <see cref="AssignedTodoItemsRequestBuilder"/> and sets the default values.
2527
/// </summary>
2628
/// <param name="rawUrl">The raw URL to use for the request builder.</param>
2729
/// <param name="requestAdapter">The request adapter to use to execute the requests.</param>
28-
public AssignedTodoItemsRequestBuilder(string rawUrl, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/api/people/{id}/assignedTodoItems{?query*}", rawUrl) {
30+
public AssignedTodoItemsRequestBuilder(string rawUrl, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/api/people/{id}/assignedTodoItems{?query*}", rawUrl)
31+
{
2932
}
3033
/// <summary>
3134
/// Retrieves the related todoItems of an individual person&apos;s assignedTodoItems relationship.
3235
/// </summary>
36+
/// <returns>A <see cref="TodoItemCollectionResponseDocument"/></returns>
3337
/// <param name="cancellationToken">Cancellation token to use when cancelling requests</param>
3438
/// <param name="requestConfiguration">Configuration for the request such as headers, query parameters, and middleware options.</param>
39+
/// <exception cref="ErrorResponseDocument">When receiving a 400 status code</exception>
40+
/// <exception cref="ErrorResponseDocument">When receiving a 404 status code</exception>
3541
#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
3642
#nullable enable
37-
public async Task<TodoItemCollectionResponseDocument?> GetAsync(Action<RequestConfiguration<AssignedTodoItemsRequestBuilderGetQueryParameters>>? requestConfiguration = default, CancellationToken cancellationToken = default) {
43+
public async Task<TodoItemCollectionResponseDocument?> GetAsync(Action<RequestConfiguration<AssignedTodoItemsRequestBuilderGetQueryParameters>>? requestConfiguration = default, CancellationToken cancellationToken = default)
44+
{
3845
#nullable restore
3946
#else
40-
public async Task<TodoItemCollectionResponseDocument> GetAsync(Action<RequestConfiguration<AssignedTodoItemsRequestBuilderGetQueryParameters>> requestConfiguration = default, CancellationToken cancellationToken = default) {
47+
public async Task<TodoItemCollectionResponseDocument> GetAsync(Action<RequestConfiguration<AssignedTodoItemsRequestBuilderGetQueryParameters>> requestConfiguration = default, CancellationToken cancellationToken = default)
48+
{
4149
#endif
4250
var requestInfo = ToGetRequestInformation(requestConfiguration);
43-
var errorMapping = new Dictionary<string, ParsableFactory<IParsable>> {
51+
var errorMapping = new Dictionary<string, ParsableFactory<IParsable>>
52+
{
4453
{"400", ErrorResponseDocument.CreateFromDiscriminatorValue},
4554
{"404", ErrorResponseDocument.CreateFromDiscriminatorValue},
4655
};
@@ -53,24 +62,29 @@ public async Task<TodoItemCollectionResponseDocument> GetAsync(Action<RequestCon
5362
/// <param name="requestConfiguration">Configuration for the request such as headers, query parameters, and middleware options.</param>
5463
#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
5564
#nullable enable
56-
public async Task<Stream?> HeadAsync(Action<RequestConfiguration<AssignedTodoItemsRequestBuilderHeadQueryParameters>>? requestConfiguration = default, CancellationToken cancellationToken = default) {
65+
public async Task HeadAsync(Action<RequestConfiguration<AssignedTodoItemsRequestBuilderHeadQueryParameters>>? requestConfiguration = default, CancellationToken cancellationToken = default)
66+
{
5767
#nullable restore
5868
#else
59-
public async Task<Stream> HeadAsync(Action<RequestConfiguration<AssignedTodoItemsRequestBuilderHeadQueryParameters>> requestConfiguration = default, CancellationToken cancellationToken = default) {
69+
public async Task HeadAsync(Action<RequestConfiguration<AssignedTodoItemsRequestBuilderHeadQueryParameters>> requestConfiguration = default, CancellationToken cancellationToken = default)
70+
{
6071
#endif
6172
var requestInfo = ToHeadRequestInformation(requestConfiguration);
62-
return await RequestAdapter.SendPrimitiveAsync<Stream>(requestInfo, default, cancellationToken).ConfigureAwait(false);
73+
await RequestAdapter.SendNoContentAsync(requestInfo, default, cancellationToken).ConfigureAwait(false);
6374
}
6475
/// <summary>
6576
/// Retrieves the related todoItems of an individual person&apos;s assignedTodoItems relationship.
6677
/// </summary>
78+
/// <returns>A <see cref="RequestInformation"/></returns>
6779
/// <param name="requestConfiguration">Configuration for the request such as headers, query parameters, and middleware options.</param>
6880
#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
6981
#nullable enable
70-
public RequestInformation ToGetRequestInformation(Action<RequestConfiguration<AssignedTodoItemsRequestBuilderGetQueryParameters>>? requestConfiguration = default) {
82+
public RequestInformation ToGetRequestInformation(Action<RequestConfiguration<AssignedTodoItemsRequestBuilderGetQueryParameters>>? requestConfiguration = default)
83+
{
7184
#nullable restore
7285
#else
73-
public RequestInformation ToGetRequestInformation(Action<RequestConfiguration<AssignedTodoItemsRequestBuilderGetQueryParameters>> requestConfiguration = default) {
86+
public RequestInformation ToGetRequestInformation(Action<RequestConfiguration<AssignedTodoItemsRequestBuilderGetQueryParameters>> requestConfiguration = default)
87+
{
7488
#endif
7589
var requestInfo = new RequestInformation(Method.GET, UrlTemplate, PathParameters);
7690
requestInfo.Configure(requestConfiguration);
@@ -80,13 +94,16 @@ public RequestInformation ToGetRequestInformation(Action<RequestConfiguration<As
8094
/// <summary>
8195
/// Compare the returned ETag HTTP header with an earlier one to determine if the response has changed since it was fetched.
8296
/// </summary>
97+
/// <returns>A <see cref="RequestInformation"/></returns>
8398
/// <param name="requestConfiguration">Configuration for the request such as headers, query parameters, and middleware options.</param>
8499
#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
85100
#nullable enable
86-
public RequestInformation ToHeadRequestInformation(Action<RequestConfiguration<AssignedTodoItemsRequestBuilderHeadQueryParameters>>? requestConfiguration = default) {
101+
public RequestInformation ToHeadRequestInformation(Action<RequestConfiguration<AssignedTodoItemsRequestBuilderHeadQueryParameters>>? requestConfiguration = default)
102+
{
87103
#nullable restore
88104
#else
89-
public RequestInformation ToHeadRequestInformation(Action<RequestConfiguration<AssignedTodoItemsRequestBuilderHeadQueryParameters>> requestConfiguration = default) {
105+
public RequestInformation ToHeadRequestInformation(Action<RequestConfiguration<AssignedTodoItemsRequestBuilderHeadQueryParameters>> requestConfiguration = default)
106+
{
90107
#endif
91108
var requestInfo = new RequestInformation(Method.HEAD, UrlTemplate, PathParameters);
92109
requestInfo.Configure(requestConfiguration);
@@ -95,14 +112,17 @@ public RequestInformation ToHeadRequestInformation(Action<RequestConfiguration<A
95112
/// <summary>
96113
/// Returns a request builder with the provided arbitrary URL. Using this method means any other path or query parameters are ignored.
97114
/// </summary>
115+
/// <returns>A <see cref="AssignedTodoItemsRequestBuilder"/></returns>
98116
/// <param name="rawUrl">The raw URL to use for the request builder.</param>
99-
public AssignedTodoItemsRequestBuilder WithUrl(string rawUrl) {
117+
public AssignedTodoItemsRequestBuilder WithUrl(string rawUrl)
118+
{
100119
return new AssignedTodoItemsRequestBuilder(rawUrl, RequestAdapter);
101120
}
102121
/// <summary>
103122
/// Retrieves the related todoItems of an individual person&apos;s assignedTodoItems relationship.
104123
/// </summary>
105-
public class AssignedTodoItemsRequestBuilderGetQueryParameters {
124+
public class AssignedTodoItemsRequestBuilderGetQueryParameters
125+
{
106126
/// <summary>For syntax, see the documentation for the [`include`](https://www.jsonapi.net/usage/reading/including-relationships.html)/[`filter`](https://www.jsonapi.net/usage/reading/filtering.html)/[`sort`](https://www.jsonapi.net/usage/reading/sorting.html)/[`page`](https://www.jsonapi.net/usage/reading/pagination.html)/[`fields`](https://www.jsonapi.net/usage/reading/sparse-fieldset-selection.html) query string parameters.</summary>
107127
#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
108128
#nullable enable
@@ -117,7 +137,8 @@ public class AssignedTodoItemsRequestBuilderGetQueryParameters {
117137
/// <summary>
118138
/// Compare the returned ETag HTTP header with an earlier one to determine if the response has changed since it was fetched.
119139
/// </summary>
120-
public class AssignedTodoItemsRequestBuilderHeadQueryParameters {
140+
public class AssignedTodoItemsRequestBuilderHeadQueryParameters
141+
{
121142
/// <summary>For syntax, see the documentation for the [`include`](https://www.jsonapi.net/usage/reading/including-relationships.html)/[`filter`](https://www.jsonapi.net/usage/reading/filtering.html)/[`sort`](https://www.jsonapi.net/usage/reading/sorting.html)/[`page`](https://www.jsonapi.net/usage/reading/pagination.html)/[`fields`](https://www.jsonapi.net/usage/reading/sparse-fieldset-selection.html) query string parameters.</summary>
122143
#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
123144
#nullable enable

0 commit comments

Comments
 (0)