Skip to content

Commit 05d72b0

Browse files
authored
Merge pull request #1507 from json-api-dotnet/merge-master-into-openapi
Merge master into openapi (controller attribute fixes)
2 parents fed4eb8 + 41524d4 commit 05d72b0

File tree

19 files changed

+362
-200
lines changed

19 files changed

+362
-200
lines changed

Diff for: src/Examples/JsonApiDotNetCoreExample/GeneratedSwagger/JsonApiDotNetCoreExample.json

+40-20
Original file line numberDiff line numberDiff line change
@@ -185,7 +185,8 @@
185185
]
186186
}
187187
}
188-
}
188+
},
189+
"required": true
189190
},
190191
"responses": {
191192
"201": {
@@ -469,7 +470,8 @@
469470
]
470471
}
471472
}
472-
}
473+
},
474+
"required": true
473475
},
474476
"responses": {
475477
"200": {
@@ -937,7 +939,8 @@
937939
]
938940
}
939941
}
940-
}
942+
},
943+
"required": true
941944
},
942945
"responses": {
943946
"204": {
@@ -1004,7 +1007,8 @@
10041007
]
10051008
}
10061009
}
1007-
}
1010+
},
1011+
"required": true
10081012
},
10091013
"responses": {
10101014
"204": {
@@ -1071,7 +1075,8 @@
10711075
]
10721076
}
10731077
}
1074-
}
1078+
},
1079+
"required": true
10751080
},
10761081
"responses": {
10771082
"204": {
@@ -1486,7 +1491,8 @@
14861491
]
14871492
}
14881493
}
1489-
}
1494+
},
1495+
"required": true
14901496
},
14911497
"responses": {
14921498
"204": {
@@ -1553,7 +1559,8 @@
15531559
]
15541560
}
15551561
}
1556-
}
1562+
},
1563+
"required": true
15571564
},
15581565
"responses": {
15591566
"204": {
@@ -1620,7 +1627,8 @@
16201627
]
16211628
}
16221629
}
1623-
}
1630+
},
1631+
"required": true
16241632
},
16251633
"responses": {
16261634
"204": {
@@ -1834,7 +1842,8 @@
18341842
]
18351843
}
18361844
}
1837-
}
1845+
},
1846+
"required": true
18381847
},
18391848
"responses": {
18401849
"201": {
@@ -2118,7 +2127,8 @@
21182127
]
21192128
}
21202129
}
2121-
}
2130+
},
2131+
"required": true
21222132
},
21232133
"responses": {
21242134
"200": {
@@ -2586,7 +2596,8 @@
25862596
]
25872597
}
25882598
}
2589-
}
2599+
},
2600+
"required": true
25902601
},
25912602
"responses": {
25922603
"204": {
@@ -2653,7 +2664,8 @@
26532664
]
26542665
}
26552666
}
2656-
}
2667+
},
2668+
"required": true
26572669
},
26582670
"responses": {
26592671
"204": {
@@ -2720,7 +2732,8 @@
27202732
]
27212733
}
27222734
}
2723-
}
2735+
},
2736+
"required": true
27242737
},
27252738
"responses": {
27262739
"204": {
@@ -2934,7 +2947,8 @@
29342947
]
29352948
}
29362949
}
2937-
}
2950+
},
2951+
"required": true
29382952
},
29392953
"responses": {
29402954
"201": {
@@ -3218,7 +3232,8 @@
32183232
]
32193233
}
32203234
}
3221-
}
3235+
},
3236+
"required": true
32223237
},
32233238
"responses": {
32243239
"200": {
@@ -3686,7 +3701,8 @@
36863701
]
36873702
}
36883703
}
3689-
}
3704+
},
3705+
"required": true
36903706
},
36913707
"responses": {
36923708
"204": {
@@ -4101,7 +4117,8 @@
41014117
]
41024118
}
41034119
}
4104-
}
4120+
},
4121+
"required": true
41054122
},
41064123
"responses": {
41074124
"204": {
@@ -4516,7 +4533,8 @@
45164533
]
45174534
}
45184535
}
4519-
}
4536+
},
4537+
"required": true
45204538
},
45214539
"responses": {
45224540
"204": {
@@ -4583,7 +4601,8 @@
45834601
]
45844602
}
45854603
}
4586-
}
4604+
},
4605+
"required": true
45874606
},
45884607
"responses": {
45894608
"204": {
@@ -4650,7 +4669,8 @@
46504669
]
46514670
}
46524671
}
4653-
}
4672+
},
4673+
"required": true
46544674
},
46554675
"responses": {
46564676
"204": {

Diff for: src/JsonApiDotNetCore.OpenApi/JsonApiMetadata/EndpointResolver.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ internal sealed class EndpointResolver
1616
return null;
1717
}
1818

19-
HttpMethodAttribute? method = controllerAction.GetCustomAttributes(true).OfType<HttpMethodAttribute>().FirstOrDefault();
19+
HttpMethodAttribute? method = Attribute.GetCustomAttributes(controllerAction, true).OfType<HttpMethodAttribute>().FirstOrDefault();
2020

2121
return ResolveJsonApiEndpoint(method);
2222
}

Diff for: src/JsonApiDotNetCore/Controllers/BaseJsonApiController.cs

+11-13
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
using System.ComponentModel.DataAnnotations;
21
using JsonApiDotNetCore.Configuration;
32
using JsonApiDotNetCore.Errors;
43
using JsonApiDotNetCore.Middleware;
@@ -107,7 +106,7 @@ public virtual async Task<IActionResult> GetAsync(CancellationToken cancellation
107106
/// GET /articles/1 HTTP/1.1
108107
/// ]]></code>
109108
/// </summary>
110-
public virtual async Task<IActionResult> GetAsync([Required] TId id, CancellationToken cancellationToken)
109+
public virtual async Task<IActionResult> GetAsync(TId id, CancellationToken cancellationToken)
111110
{
112111
_traceWriter.LogMethodStart(new
113112
{
@@ -132,7 +131,7 @@ public virtual async Task<IActionResult> GetAsync([Required] TId id, Cancellatio
132131
/// GET /articles/1/revisions HTTP/1.1
133132
/// ]]></code>
134133
/// </summary>
135-
public virtual async Task<IActionResult> GetSecondaryAsync([Required] TId id, [Required] string relationshipName, CancellationToken cancellationToken)
134+
public virtual async Task<IActionResult> GetSecondaryAsync(TId id, string relationshipName, CancellationToken cancellationToken)
136135
{
137136
_traceWriter.LogMethodStart(new
138137
{
@@ -161,7 +160,7 @@ public virtual async Task<IActionResult> GetSecondaryAsync([Required] TId id, [R
161160
/// GET /articles/1/relationships/revisions HTTP/1.1
162161
/// ]]></code>
163162
/// </summary>
164-
public virtual async Task<IActionResult> GetRelationshipAsync([Required] TId id, [Required] string relationshipName, CancellationToken cancellationToken)
163+
public virtual async Task<IActionResult> GetRelationshipAsync(TId id, string relationshipName, CancellationToken cancellationToken)
165164
{
166165
_traceWriter.LogMethodStart(new
167166
{
@@ -186,7 +185,7 @@ public virtual async Task<IActionResult> GetRelationshipAsync([Required] TId id,
186185
/// POST /articles HTTP/1.1
187186
/// ]]></code>
188187
/// </summary>
189-
public virtual async Task<IActionResult> PostAsync([FromBody] [Required] TResource resource, CancellationToken cancellationToken)
188+
public virtual async Task<IActionResult> PostAsync(TResource resource, CancellationToken cancellationToken)
190189
{
191190
_traceWriter.LogMethodStart(new
192191
{
@@ -236,8 +235,8 @@ public virtual async Task<IActionResult> PostAsync([FromBody] [Required] TResour
236235
/// <param name="cancellationToken">
237236
/// Propagates notification that request handling should be canceled.
238237
/// </param>
239-
public virtual async Task<IActionResult> PostRelationshipAsync([Required] TId id, [Required] string relationshipName,
240-
[FromBody] [Required] ISet<IIdentifiable> rightResourceIds, CancellationToken cancellationToken)
238+
public virtual async Task<IActionResult> PostRelationshipAsync(TId id, string relationshipName, ISet<IIdentifiable> rightResourceIds,
239+
CancellationToken cancellationToken)
241240
{
242241
_traceWriter.LogMethodStart(new
243242
{
@@ -265,7 +264,7 @@ public virtual async Task<IActionResult> PostRelationshipAsync([Required] TId id
265264
/// PATCH /articles/1 HTTP/1.1
266265
/// ]]></code>
267266
/// </summary>
268-
public virtual async Task<IActionResult> PatchAsync([Required] TId id, [FromBody] [Required] TResource resource, CancellationToken cancellationToken)
267+
public virtual async Task<IActionResult> PatchAsync(TId id, TResource resource, CancellationToken cancellationToken)
269268
{
270269
_traceWriter.LogMethodStart(new
271270
{
@@ -311,8 +310,7 @@ public virtual async Task<IActionResult> PatchAsync([Required] TId id, [FromBody
311310
/// <param name="cancellationToken">
312311
/// Propagates notification that request handling should be canceled.
313312
/// </param>
314-
public virtual async Task<IActionResult> PatchRelationshipAsync([Required] TId id, [Required] string relationshipName, [FromBody] object? rightValue,
315-
CancellationToken cancellationToken)
313+
public virtual async Task<IActionResult> PatchRelationshipAsync(TId id, string relationshipName, object? rightValue, CancellationToken cancellationToken)
316314
{
317315
_traceWriter.LogMethodStart(new
318316
{
@@ -338,7 +336,7 @@ public virtual async Task<IActionResult> PatchRelationshipAsync([Required] TId i
338336
/// DELETE /articles/1 HTTP/1.1
339337
/// ]]></code>
340338
/// </summary>
341-
public virtual async Task<IActionResult> DeleteAsync([Required] TId id, CancellationToken cancellationToken)
339+
public virtual async Task<IActionResult> DeleteAsync(TId id, CancellationToken cancellationToken)
342340
{
343341
_traceWriter.LogMethodStart(new
344342
{
@@ -372,8 +370,8 @@ public virtual async Task<IActionResult> DeleteAsync([Required] TId id, Cancella
372370
/// <param name="cancellationToken">
373371
/// Propagates notification that request handling should be canceled.
374372
/// </param>
375-
public virtual async Task<IActionResult> DeleteRelationshipAsync([Required] TId id, [Required] string relationshipName,
376-
[FromBody] [Required] ISet<IIdentifiable> rightResourceIds, CancellationToken cancellationToken)
373+
public virtual async Task<IActionResult> DeleteRelationshipAsync(TId id, string relationshipName, ISet<IIdentifiable> rightResourceIds,
374+
CancellationToken cancellationToken)
377375
{
378376
_traceWriter.LogMethodStart(new
379377
{

Diff for: src/JsonApiDotNetCore/Controllers/BaseJsonApiOperationsController.cs

+1-3
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
using System.ComponentModel.DataAnnotations;
21
using JetBrains.Annotations;
32
using JsonApiDotNetCore.AtomicOperations;
43
using JsonApiDotNetCore.Configuration;
@@ -103,8 +102,7 @@ protected BaseJsonApiOperationsController(IJsonApiOptions options, IResourceGrap
103102
/// }
104103
/// ]]></code>
105104
/// </example>
106-
public virtual async Task<IActionResult> PostOperationsAsync([FromBody] [Required] IList<OperationContainer> operations,
107-
CancellationToken cancellationToken)
105+
public virtual async Task<IActionResult> PostOperationsAsync(IList<OperationContainer> operations, CancellationToken cancellationToken)
108106
{
109107
_traceWriter.LogMethodStart(new
110108
{

0 commit comments

Comments
 (0)