Deduplicate path parameters from OpenAPI spec (#3264)

This commit is contained in:
Nolann B.
2025-05-26 18:55:11 +02:00
committed by GitHub
parent af66ff71ed
commit 40df91a363
2 changed files with 26 additions and 1 deletions
+5
View File
@@ -0,0 +1,5 @@
---
'@gitbook/react-openapi': patch
---
Deduplicate path parameters from OpenAPI spec
+21 -1
View File
@@ -18,7 +18,7 @@ export function OpenAPISpec(props: {
const { operation } = data;
const parameters = operation.parameters ?? [];
const parameters = deduplicateParameters(operation.parameters ?? []);
const parameterGroups = groupParameters(parameters, context);
const securities = 'securities' in data ? data.securities : [];
@@ -113,3 +113,23 @@ function getParameterGroupName(paramIn: string, context: OpenAPIClientContext):
return paramIn;
}
}
/** Deduplicate parameters by name and in.
* Some specs have both parameters define at path and operation level.
* We only want to display one of them.
*/
function deduplicateParameters(parameters: OpenAPI.Parameters): OpenAPI.Parameters {
const seen = new Set();
return parameters.filter((param) => {
const key = `${param.name}:${param.in}`;
if (seen.has(key)) {
return false;
}
seen.add(key);
return true;
});
}