diff --git a/src/build/resolveOpenAPI.ts b/src/build/resolveOpenAPI.ts index 48d40954bef0e..19af07487db9d 100644 --- a/src/build/resolveOpenAPI.ts +++ b/src/build/resolveOpenAPI.ts @@ -130,8 +130,13 @@ async function apiCategoriesUncached(): Promise { Object.entries(data.paths).forEach(([apiPath, methods]) => { Object.entries(methods).forEach(([method, apiData]) => { - const isDeprecated = isDeprecatedOperationId(apiData.operationId); - const cleanOperationId = stripDeprecatedPrefix(apiData.operationId ?? ''); + // Detect deprecation from either field independently — the (DEPRECATED) + // marker may sit on operationId even when a summary is present. + const isDeprecated = + isDeprecatedOperationId(apiData.operationId) || + isDeprecatedOperationId(apiData.summary); + const titleSource = apiData.summary || apiData.operationId || ''; + const cleanName = stripDeprecatedPrefix(titleSource); let server = 'https://sentry.io'; if (apiData.servers && apiData.servers[0]) { @@ -141,11 +146,13 @@ async function apiCategoriesUncached(): Promise { categoryMap[tag].apis.push({ apiPath, method, - name: cleanOperationId, + name: cleanName, deprecated: isDeprecated, server, - slug: slugify(cleanOperationId), - summary: apiData.summary, + slug: slugify(cleanName), + summary: apiData.summary + ? stripDeprecatedPrefix(apiData.summary) + : apiData.summary, descriptionMarkdown: apiData.description, pathParameters: (apiData.parameters || []).filter( p => p.in === 'path' diff --git a/src/components/apiPage/index.tsx b/src/components/apiPage/index.tsx index d49fd86eaa155..c0caa97bbcfd3 100644 --- a/src/components/apiPage/index.tsx +++ b/src/components/apiPage/index.tsx @@ -137,7 +137,7 @@ export function ApiPage({api}: Props) {
- {api.summary &&

{api.summary}

} + {api.summary && api.summary !== api.name &&

{api.summary}

} {api.descriptionMarkdown && parseMarkdown(api.descriptionMarkdown)}