11package apiaddicts .sonar .openapi .checks .operations ;
22
3+ import apiaddicts .sonar .openapi .checks .BaseCheck ;
34import com .google .common .collect .ImmutableSet ;
45import com .sonar .sslr .api .AstNodeType ;
5- import org .sonar .check .Rule ;
6+ import java .util .Arrays ;
7+ import java .util .HashSet ;
8+ import java .util .Set ;
9+ import java .util .stream .Stream ;
610import org .apiaddicts .apitools .dosonarapi .api .v2 .OpenApi2Grammar ;
711import org .apiaddicts .apitools .dosonarapi .api .v3 .OpenApi3Grammar ;
812import org .apiaddicts .apitools .dosonarapi .api .v31 .OpenApi31Grammar ;
9- import apiaddicts .sonar .openapi .checks .BaseCheck ;
1013import org .apiaddicts .apitools .dosonarapi .sslr .yaml .grammar .JsonNode ;
11-
12- import java .util .Set ;
13- import java .util .stream .Stream ;
14+ import org .sonar .check .Rule ;
1415
1516@ Rule (key = OAR017ResourcePathCheck .KEY )
1617public class OAR017ResourcePathCheck extends BaseCheck {
1718
1819 public static final String KEY = "OAR017" ;
1920 private static final String MESSAGE = "OAR017.error" ;
21+ public static final Set <String > EXCLUDE_PATTERNS = new HashSet <>(Arrays .asList ("get" , "me" , "search" ));
2022
2123 @ Override
2224 public Set <AstNodeType > subscribedKinds () {
@@ -43,6 +45,10 @@ private boolean isCorrect(String path) {
4345 for (int i = 0 ; i < parts .length ; i ++) {
4446 boolean currentIsVariable = isVariable (parts [i ]);
4547
48+ if (!currentIsVariable && EXCLUDE_PATTERNS .contains (parts [i ])){
49+ twoOrMoreVariablesInARow = false ;
50+ }
51+
4652 if (previousWasVariable && currentIsVariable ) {
4753 twoOrMoreVariablesInARow = true ;
4854 break ;
0 commit comments