diff --git a/packages/plugins/openapi/src/rest-generator.ts b/packages/plugins/openapi/src/rest-generator.ts index 9e2bdc337..7cf465d9e 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 operations + 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: