From 555f59ab885e925b1a249ecc9927e1d751c2e3fc Mon Sep 17 00:00:00 2001 From: Ashish Gupta Date: Mon, 10 Mar 2025 17:47:37 +0530 Subject: [PATCH] #19615: supported request schema field in case response field not present in OpenAPI lineage (#19885) * supported request schema field in case response field not present in OpenAPI lineage * fix backend validation --------- Co-authored-by: ulixius9 (cherry picked from commit b48d9b9c9740158a5cc6ad4ee58339f0f196117f) --- .../openmetadata/service/jdbi3/LineageRepository.java | 11 +++++++++-- .../resources/ui/src/utils/EntityLineageUtils.tsx | 5 ++++- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/LineageRepository.java b/openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/LineageRepository.java index e9fc52760ec..ee25ab0ed9b 100644 --- a/openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/LineageRepository.java +++ b/openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/LineageRepository.java @@ -600,8 +600,15 @@ public class LineageRepository { case API_ENDPOINT -> { APIEndpoint apiEndpoint = Entity.getEntity( - API_ENDPOINT, entityReference.getId(), "responseSchema", Include.NON_DELETED); - ColumnUtil.validateFieldFQN(apiEndpoint.getResponseSchema().getSchemaFields(), columnFQN); + API_ENDPOINT, + entityReference.getId(), + "responseSchema,requestSchema", + Include.NON_DELETED); + if (apiEndpoint.getResponseSchema() != null) { + ColumnUtil.validateFieldFQN(apiEndpoint.getResponseSchema().getSchemaFields(), columnFQN); + } else { + ColumnUtil.validateFieldFQN(apiEndpoint.getRequestSchema().getSchemaFields(), columnFQN); + } } case METRIC -> { LOG.info("Metric column level lineage is not supported"); diff --git a/openmetadata-ui/src/main/resources/ui/src/utils/EntityLineageUtils.tsx b/openmetadata-ui/src/main/resources/ui/src/utils/EntityLineageUtils.tsx index da1cac36e15..0c6410c27bb 100644 --- a/openmetadata-ui/src/main/resources/ui/src/utils/EntityLineageUtils.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/utils/EntityLineageUtils.tsx @@ -649,7 +649,10 @@ export const getEntityChildrenAndLabel = ( label: t('label.field-plural'), }, [EntityType.API_ENDPOINT]: { - data: (node as APIEndpoint)?.responseSchema?.schemaFields ?? [], + data: + (node as APIEndpoint)?.responseSchema?.schemaFields ?? + (node as APIEndpoint)?.requestSchema?.schemaFields ?? + [], label: t('label.field-plural'), }, [EntityType.SEARCH_INDEX]: {