From 22fa64cad12c917cd629c7b0ff941b65aee359b2 Mon Sep 17 00:00:00 2001 From: Aldo Torres Date: Mon, 27 Oct 2025 12:28:12 -0500 Subject: [PATCH] Adding validation to don't show errors when the resource has and {id} --- .../parameters/OAR025LimitParameterCheck.java | 21 ++++++++++--------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/src/main/java/apiaddicts/sonar/openapi/checks/parameters/OAR025LimitParameterCheck.java b/src/main/java/apiaddicts/sonar/openapi/checks/parameters/OAR025LimitParameterCheck.java index 44f48846..828637f1 100644 --- a/src/main/java/apiaddicts/sonar/openapi/checks/parameters/OAR025LimitParameterCheck.java +++ b/src/main/java/apiaddicts/sonar/openapi/checks/parameters/OAR025LimitParameterCheck.java @@ -1,22 +1,19 @@ package apiaddicts.sonar.openapi.checks.parameters; +import apiaddicts.sonar.openapi.checks.BaseCheck; +import com.google.common.collect.ImmutableSet; +import com.sonar.sslr.api.AstNode; +import com.sonar.sslr.api.AstNodeType; +import java.util.Arrays; +import java.util.HashSet; import java.util.Set; import java.util.stream.Collectors; - import org.apiaddicts.apitools.dosonarapi.api.v2.OpenApi2Grammar; import org.apiaddicts.apitools.dosonarapi.api.v3.OpenApi3Grammar; import org.apiaddicts.apitools.dosonarapi.api.v31.OpenApi31Grammar; import org.apiaddicts.apitools.dosonarapi.sslr.yaml.grammar.JsonNode; import org.sonar.check.Rule; import org.sonar.check.RuleProperty; -import apiaddicts.sonar.openapi.checks.BaseCheck; - -import com.google.common.collect.ImmutableSet; -import com.sonar.sslr.api.AstNode; -import com.sonar.sslr.api.AstNodeType; - -import java.util.Arrays; -import java.util.HashSet; @Rule(key = OAR025LimitParameterCheck.KEY) public class OAR025LimitParameterCheck extends BaseCheck { @@ -71,7 +68,7 @@ public void visitNode(JsonNode node) { boolean hasParameter = hasParameterInNode(node); - if (shouldIncludePath(path) && !hasParameter) { + if (shouldIncludePath(path) && !hasParameter && !isSingleResourcePath(path)) { addIssue(KEY, translate(MESSAGE, PARAM_NAME), node.key()); } } @@ -170,4 +167,8 @@ private JsonNode resolveReference(String refValue, JsonNode root) { return currentNode; } + + private boolean isSingleResourcePath(String path) { + return path.matches(".*/\\{[^/]+\\}$"); + } } \ No newline at end of file