From 45d3287bdeb12edb4c2bdbef002434d813ad32ee Mon Sep 17 00:00:00 2001 From: Thomas Sunde Nielsen Date: Mon, 14 Oct 2024 09:16:54 +0200 Subject: [PATCH 1/2] Mark openapi attributes as required for reads --- .../plugins/openapi/src/rest-generator.ts | 3 +++ .../tests/baseline/rest-3.0.0.baseline.yaml | 19 +++++++++++++++++++ .../tests/baseline/rest-3.1.0.baseline.yaml | 19 +++++++++++++++++++ 3 files changed, 41 insertions(+) diff --git a/packages/plugins/openapi/src/rest-generator.ts b/packages/plugins/openapi/src/rest-generator.ts index 9e2bdc337..739135cac 100644 --- a/packages/plugins/openapi/src/rest-generator.ts +++ b/packages/plugins/openapi/src/rest-generator.ts @@ -874,6 +874,9 @@ export class RESTfulOpenAPIGenerator extends OpenAPIGeneratorBase { !(isDataModel(field.$resolvedType?.decl) && field.type.array) ) { required.push(field.name); + } else if (mode === 'read') { + // Until we support sparse fieldsets, all fields are required for read + required.push(field.name); } } } diff --git a/packages/plugins/openapi/tests/baseline/rest-3.0.0.baseline.yaml b/packages/plugins/openapi/tests/baseline/rest-3.0.0.baseline.yaml index 0b05005a6..96f80d81a 100644 --- a/packages/plugins/openapi/tests/baseline/rest-3.0.0.baseline.yaml +++ b/packages/plugins/openapi/tests/baseline/rest-3.0.0.baseline.yaml @@ -2591,6 +2591,11 @@ components: type: string role: $ref: '#/components/schemas/role' + required: + - createdAt + - updatedAt + - email + - role relationships: type: object properties: @@ -2761,6 +2766,9 @@ components: nullable: true userId: type: string + required: + - image + - userId relationships: type: object properties: @@ -2919,6 +2927,14 @@ components: notes: type: string nullable: true + required: + - createdAt + - updatedAt + - title + - authorId + - published + - viewCount + - notes relationships: type: object properties: @@ -3099,6 +3115,9 @@ components: type: string userId: type: string + required: + - postId + - userId relationships: type: object properties: diff --git a/packages/plugins/openapi/tests/baseline/rest-3.1.0.baseline.yaml b/packages/plugins/openapi/tests/baseline/rest-3.1.0.baseline.yaml index 8096c90d6..e3f2d6821 100644 --- a/packages/plugins/openapi/tests/baseline/rest-3.1.0.baseline.yaml +++ b/packages/plugins/openapi/tests/baseline/rest-3.1.0.baseline.yaml @@ -2596,6 +2596,11 @@ components: type: string role: $ref: '#/components/schemas/role' + required: + - createdAt + - updatedAt + - email + - role relationships: type: object properties: @@ -2767,6 +2772,9 @@ components: - type: string userId: type: string + required: + - image + - userId relationships: type: object properties: @@ -2929,6 +2937,14 @@ components: oneOf: - type: 'null' - type: string + required: + - createdAt + - updatedAt + - title + - authorId + - published + - viewCount + - notes relationships: type: object properties: @@ -3113,6 +3129,9 @@ components: type: string userId: type: string + required: + - postId + - userId relationships: type: object properties: From 74cd346db235404c6601f1ae07268a29c2bbf36e Mon Sep 17 00:00:00 2001 From: Thomas Sunde Nielsen Date: Mon, 14 Oct 2024 16:03:56 +0200 Subject: [PATCH 2/2] Rerun tests --- packages/plugins/openapi/src/rest-generator.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/plugins/openapi/src/rest-generator.ts b/packages/plugins/openapi/src/rest-generator.ts index 739135cac..7cf465d9e 100644 --- a/packages/plugins/openapi/src/rest-generator.ts +++ b/packages/plugins/openapi/src/rest-generator.ts @@ -875,7 +875,7 @@ export class RESTfulOpenAPIGenerator extends OpenAPIGeneratorBase { ) { required.push(field.name); } else if (mode === 'read') { - // Until we support sparse fieldsets, all fields are required for read + // Until we support sparse fieldsets, all fields are required for read operations required.push(field.name); } }