@@ -59,18 +59,6 @@ public virtual void SerializeAsV32(IOpenApiWriter writer)
5959 {
6060 SerializeInternal ( writer , OpenApiSpecVersion . OpenApi3_2 ,
6161 ( writer , element ) => element . SerializeAsV32 ( writer ) ) ;
62-
63- if ( Summary != null )
64- writer . WriteProperty ( "summary" , Summary ) ;
65- if ( Parent != null )
66- {
67- writer . WritePropertyName ( "parent" ) ;
68- Parent . SerializeAsV32 ( writer ) ;
69- }
70- if ( Kind != null )
71- writer . WriteProperty ( "kind" , Kind ) ;
72-
73- writer . WriteEndObject ( ) ;
7462 }
7563
7664 /// <summary>
@@ -80,19 +68,6 @@ public virtual void SerializeAsV31(IOpenApiWriter writer)
8068 {
8169 SerializeInternal ( writer , OpenApiSpecVersion . OpenApi3_1 ,
8270 ( writer , element ) => element . SerializeAsV31 ( writer ) ) ;
83-
84- if ( Summary != null )
85- writer . WriteProperty ( "x-oas-summary" , Summary ) ;
86- if ( Parent != null )
87- {
88- writer . WritePropertyName ( "x-oas-parent" ) ;
89- Parent . SerializeAsV31 ( writer ) ;
90- }
91- if ( Kind != null )
92- writer . WriteProperty ( "x-oas-kind" , Kind ) ;
93-
94-
95- writer . WriteEndObject ( ) ;
9671 }
9772
9873 /// <summary>
@@ -102,19 +77,6 @@ public virtual void SerializeAsV3(IOpenApiWriter writer)
10277 {
10378 SerializeInternal ( writer , OpenApiSpecVersion . OpenApi3_0 ,
10479 ( writer , element ) => element . SerializeAsV3 ( writer ) ) ;
105-
106- if ( Summary != null )
107- writer . WriteProperty ( "x-oas-summary" , Summary ) ;
108- if ( Parent != null )
109- {
110- writer . WritePropertyName ( "x-oas-parent" ) ;
111- Parent . SerializeAsV3 ( writer ) ;
112- }
113- if ( Kind != null )
114- writer . WriteProperty ( "x-oas-kind" , Kind ) ;
115-
116-
117- writer . WriteEndObject ( ) ;
11880 }
11981
12082 internal void SerializeInternal ( IOpenApiWriter writer , OpenApiSpecVersion version ,
@@ -131,8 +93,56 @@ internal void SerializeInternal(IOpenApiWriter writer, OpenApiSpecVersion versio
13193 // external docs
13294 writer . WriteOptionalObject ( OpenApiConstants . ExternalDocs , ExternalDocs , callback ) ;
13395
96+ // summary - version specific handling
97+ if ( Summary != null )
98+ {
99+ if ( version == OpenApiSpecVersion . OpenApi3_2 )
100+ {
101+ writer . WriteProperty ( "summary" , Summary ) ;
102+ }
103+ else if ( version == OpenApiSpecVersion . OpenApi3_1 || version == OpenApiSpecVersion . OpenApi3_0 )
104+ {
105+ writer . WriteProperty ( "x-oas-summary" , Summary ) ;
106+ }
107+ }
108+
109+ // parent - version specific handling
110+ if ( Parent != null )
111+ {
112+ if ( version == OpenApiSpecVersion . OpenApi3_2 )
113+ {
114+ writer . WritePropertyName ( "parent" ) ;
115+ Parent . SerializeAsV32 ( writer ) ;
116+ }
117+ else if ( version == OpenApiSpecVersion . OpenApi3_1 )
118+ {
119+ writer . WritePropertyName ( "x-oas-parent" ) ;
120+ Parent . SerializeAsV31 ( writer ) ;
121+ }
122+ else if ( version == OpenApiSpecVersion . OpenApi3_0 )
123+ {
124+ writer . WritePropertyName ( "x-oas-parent" ) ;
125+ Parent . SerializeAsV3 ( writer ) ;
126+ }
127+ }
128+
129+ // kind - version specific handling
130+ if ( Kind != null )
131+ {
132+ if ( version == OpenApiSpecVersion . OpenApi3_2 )
133+ {
134+ writer . WriteProperty ( "kind" , Kind ) ;
135+ }
136+ else if ( version == OpenApiSpecVersion . OpenApi3_1 || version == OpenApiSpecVersion . OpenApi3_0 )
137+ {
138+ writer . WriteProperty ( "x-oas-kind" , Kind ) ;
139+ }
140+ }
141+
134142 // extensions.
135143 writer . WriteExtensions ( Extensions , version ) ;
144+
145+ writer . WriteEndObject ( ) ;
136146 }
137147
138148 /// <summary>
@@ -142,8 +152,6 @@ public virtual void SerializeAsV2(IOpenApiWriter writer)
142152 {
143153 SerializeInternal ( writer , OpenApiSpecVersion . OpenApi2_0 ,
144154 ( writer , element ) => element . SerializeAsV2 ( writer ) ) ;
145-
146- writer . WriteEndObject ( ) ;
147155 }
148156
149157 /// <inheritdoc/>
0 commit comments