docs: @Override
    public String getQueryBaseRoute() {
      final String[] split = explodePath();
      if (split.length < 1) {
        return "";
      }
      if (!split[0].toLowerCase().equals("api")) {
        return split[0].toLowerCase();
      }
      // set the default api_version so the API call is handled by a serializer if
      // an exception is thrown
      this.api_version = MAX_API_VERSION;
      if (split.length < 2) {
        return "api";
      }
      if (split[1].toLowerCase().startsWith("v") && split[1].length() > 1 &&
          Character.isDigit(split[1].charAt(1))) {
        try {
          final int version = Integer.parseInt(split[1].substring(1));
          if (version > MAX_API_VERSION) {
            throw new BadRequestException(HttpResponseStatus.NOT_IMPLEMENTED,
                "Requested API version is greater than the max implemented",
                "API version [" + version + "] is greater than the max [" +
                MAX_API_VERSION + "]");
          }
          this.api_version = version;
        } catch (NumberFormatException nfe) {
          throw new BadRequestException(HttpResponseStatus.BAD_REQUEST,
              "Invalid API version format supplied",
              "API version [" + split[1].substring(1) +
              "] cannot be parsed to an integer");
        }
      } else {
        return "api/" + split[1].toLowerCase();
      }
      if (split.length < 3){
        return "api";
      }
      return "api/" + split[2].toLowerCase();
    }