@@ -19,26 +19,44 @@ export function OpenAPICodeSample(props: {
19
19
} ) {
20
20
const { data, context } = props ;
21
21
22
- const requiredHeaders = data . operation . parameters
23
- ?. map ( noReference )
24
- . filter ( ( param ) => param . in === 'header' && param . required ) ;
25
-
22
+ const searchParams = new URLSearchParams ( ) ;
26
23
const headersObject : { [ k : string ] : string } = { } ;
27
- requiredHeaders ?. forEach ( ( header ) => {
28
- const example = header . schema
29
- ? generateSchemaExample ( noReference ( header . schema ) )
30
- : undefined ;
31
- if ( example !== undefined ) {
32
- headersObject [ header . name ] =
33
- typeof example !== 'string' ? JSON . stringify ( example ) : example ;
24
+
25
+ data . operation . parameters ?. forEach ( ( rawParam ) => {
26
+ const param = noReference ( rawParam ) ;
27
+ if ( ! param ) {
28
+ return ;
29
+ }
30
+
31
+ if ( param . in === 'header' && param . required ) {
32
+ const example = param . schema
33
+ ? generateSchemaExample ( noReference ( param . schema ) )
34
+ : undefined ;
35
+ if ( example !== undefined ) {
36
+ headersObject [ param . name ] =
37
+ typeof example !== 'string' ? JSON . stringify ( example ) : example ;
38
+ }
39
+ } else if ( param . in === 'query' && param . required ) {
40
+ const example = param . schema
41
+ ? generateSchemaExample ( noReference ( param . schema ) )
42
+ : undefined ;
43
+ if ( example !== undefined ) {
44
+ searchParams . append (
45
+ param . name ,
46
+ String ( Array . isArray ( example ) ? example [ 0 ] : example ) ,
47
+ ) ;
48
+ }
34
49
}
35
50
} ) ;
36
51
37
52
const requestBody = noReference ( data . operation . requestBody ) ;
38
53
const requestBodyContent = requestBody ? Object . entries ( requestBody . content ) [ 0 ] : undefined ;
39
54
40
55
const input : CodeSampleInput = {
41
- url : getServersURL ( data . servers ) + data . path ,
56
+ url :
57
+ getServersURL ( data . servers ) +
58
+ data . path +
59
+ ( searchParams . size ? `?${ searchParams . toString ( ) } ` : '' ) ,
42
60
method : data . method ,
43
61
body : requestBodyContent
44
62
? generateMediaTypeExample ( requestBodyContent [ 1 ] , { onlyRequired : true } )
0 commit comments