Skip to content

Commit 125703d

Browse files
committed
Add allOf required spec and fix items branch
1 parent 0dfe328 commit 125703d

File tree

2 files changed

+67
-18
lines changed

2 files changed

+67
-18
lines changed
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
openapi: 3.1.0
2+
info:
3+
title: allOf Required Inheritance API
4+
description: Demonstrates property required flag inherited from parent when using allOf.
5+
version: 1.0.0
6+
tags:
7+
- name: allOfRequired
8+
description: allOf required tests
9+
paths:
10+
/allof-parent-required:
11+
get:
12+
tags:
13+
- allOfRequired
14+
summary: allOf inherits parent required
15+
description: |
16+
Parent object marks the "pet" property as required while its schema is composed via allOf.
17+
18+
Schema:
19+
```yaml
20+
type: object
21+
properties:
22+
pet:
23+
allOf:
24+
- type: object
25+
properties:
26+
name:
27+
type: string
28+
- type: object
29+
properties:
30+
age:
31+
type: integer
32+
required: [pet]
33+
```
34+
responses:
35+
"200":
36+
description: Successful response
37+
content:
38+
application/json:
39+
schema:
40+
type: object
41+
properties:
42+
pet:
43+
allOf:
44+
- type: object
45+
properties:
46+
name:
47+
type: string
48+
- type: object
49+
properties:
50+
age:
51+
type: integer
52+
required:
53+
- pet

packages/docusaurus-theme-openapi-docs/src/theme/Schema/index.tsx

Lines changed: 14 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -725,9 +725,7 @@ const SchemaEdge: React.FC<SchemaEdgeProps> = ({
725725
name={name}
726726
schemaName={mergedSchemaName}
727727
required={
728-
Array.isArray(mergedSchemas.required)
729-
? mergedSchemas.required.includes(name)
730-
: mergedSchemas.required
728+
Array.isArray(required) ? required.includes(name) : required
731729
}
732730
nullable={mergedSchemas.nullable}
733731
schema={mergedSchemas}
@@ -742,9 +740,7 @@ const SchemaEdge: React.FC<SchemaEdgeProps> = ({
742740
name={name}
743741
schemaName={mergedSchemaName}
744742
required={
745-
Array.isArray(mergedSchemas.required)
746-
? mergedSchemas.required.includes(name)
747-
: mergedSchemas.required
743+
Array.isArray(required) ? required.includes(name) : required
748744
}
749745
nullable={mergedSchemas.nullable}
750746
schema={mergedSchemas}
@@ -754,18 +750,18 @@ const SchemaEdge: React.FC<SchemaEdgeProps> = ({
754750
}
755751

756752
if (mergedSchemas.items?.properties) {
757-
<SchemaNodeDetails
758-
name={name}
759-
schemaName={mergedSchemaName}
760-
required={
761-
Array.isArray(mergedSchemas.required)
762-
? mergedSchemas.required.includes(name)
763-
: mergedSchemas.required
764-
}
765-
nullable={mergedSchemas.nullable}
766-
schema={mergedSchemas}
767-
schemaType={schemaType}
768-
/>;
753+
return (
754+
<SchemaNodeDetails
755+
name={name}
756+
schemaName={mergedSchemaName}
757+
required={
758+
Array.isArray(required) ? required.includes(name) : required
759+
}
760+
nullable={mergedSchemas.nullable}
761+
schema={mergedSchemas}
762+
schemaType={schemaType}
763+
/>
764+
);
769765
}
770766

771767
return (

0 commit comments

Comments
 (0)