11package apiaddicts .sonar .openapi .checks .parameters ;
22
3+ import apiaddicts .sonar .openapi .checks .BaseCheck ;
4+ import com .google .common .collect .ImmutableSet ;
5+ import com .sonar .sslr .api .AstNode ;
6+ import com .sonar .sslr .api .AstNodeType ;
7+ import java .util .Arrays ;
8+ import java .util .HashSet ;
39import java .util .Set ;
410import java .util .stream .Collectors ;
5-
611import org .apiaddicts .apitools .dosonarapi .api .v2 .OpenApi2Grammar ;
712import org .apiaddicts .apitools .dosonarapi .api .v3 .OpenApi3Grammar ;
813import org .apiaddicts .apitools .dosonarapi .api .v31 .OpenApi31Grammar ;
914import org .apiaddicts .apitools .dosonarapi .sslr .yaml .grammar .JsonNode ;
1015import org .sonar .check .Rule ;
1116import org .sonar .check .RuleProperty ;
12- import apiaddicts .sonar .openapi .checks .BaseCheck ;
13-
14- import com .google .common .collect .ImmutableSet ;
15- import com .sonar .sslr .api .AstNode ;
16- import com .sonar .sslr .api .AstNodeType ;
17-
18- import java .util .Arrays ;
19- import java .util .HashSet ;
2017
2118@ Rule (key = OAR025LimitParameterCheck .KEY )
2219public class OAR025LimitParameterCheck extends BaseCheck {
@@ -71,7 +68,7 @@ public void visitNode(JsonNode node) {
7168
7269 boolean hasParameter = hasParameterInNode (node );
7370
74- if (shouldIncludePath (path ) && !hasParameter ) {
71+ if (shouldIncludePath (path ) && !hasParameter && ! isSingleResourcePath ( path ) ) {
7572 addIssue (KEY , translate (MESSAGE , PARAM_NAME ), node .key ());
7673 }
7774 }
@@ -170,4 +167,8 @@ private JsonNode resolveReference(String refValue, JsonNode root) {
170167
171168 return currentNode ;
172169 }
170+
171+ private boolean isSingleResourcePath (String path ) {
172+ return path .matches (".*/\\ {[^/]+\\ }$" );
173+ }
173174}
0 commit comments