Skip to content

Commit a679e72

Browse files
authored
Render mandatory headers in the code sample (#2445)
1 parent 13c7534 commit a679e72

File tree

2 files changed

+22
-1
lines changed

2 files changed

+22
-1
lines changed

.changeset/ten-carpets-cover.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@gitbook/react-openapi': patch
3+
---
4+
5+
Render mandatory headers in code sample

packages/react-openapi/src/OpenAPICodeSample.tsx

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import * as React from 'react';
22

33
import { CodeSampleInput, codeSampleGenerators } from './code-samples';
44
import { OpenAPIOperationData, toJSON } from './fetchOpenAPIOperation';
5-
import { generateMediaTypeExample } from './generateSchemaExample';
5+
import { generateMediaTypeExample, generateSchemaExample } from './generateSchemaExample';
66
import { InteractiveSection } from './InteractiveSection';
77
import { getServersURL } from './OpenAPIServerURL';
88
import { ScalarApiButton } from './ScalarApiButton';
@@ -19,6 +19,21 @@ export function OpenAPICodeSample(props: {
1919
}) {
2020
const { data, context } = props;
2121

22+
const requiredHeaders = data.operation.parameters
23+
?.map(noReference)
24+
.filter((param) => param.in === 'header' && param.required);
25+
26+
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;
34+
}
35+
});
36+
2237
const requestBody = noReference(data.operation.requestBody);
2338
const requestBodyContent = requestBody ? Object.entries(requestBody.content)[0] : undefined;
2439

@@ -30,6 +45,7 @@ export function OpenAPICodeSample(props: {
3045
: undefined,
3146
headers: {
3247
...getSecurityHeaders(data.securities),
48+
...headersObject,
3349
...(requestBodyContent
3450
? {
3551
'Content-Type': requestBodyContent[0],

0 commit comments

Comments
 (0)