docs: public HttpMethod getAPIMethod() {
      if (this.method() != HttpMethod.GET) {
        return this.method();
      } else {
        if (this.hasQueryStringParam("method_override")) {
          final String qs_method = this.getQueryStringParam("method_override");
          if (qs_method == null || qs_method.isEmpty()) {
            throw new BadRequestException(HttpResponseStatus.METHOD_NOT_ALLOWED,
                "Missing method override value");
          }
          if (qs_method.toLowerCase().equals("get")) {
            // you can't fix dumb
            return HttpMethod.GET;
          } else if (qs_method.toLowerCase().equals("post")){
            return HttpMethod.POST;
          } else if (qs_method.toLowerCase().equals("put")){
            return HttpMethod.PUT;
          } else if (qs_method.toLowerCase().equals("delete")){
            return HttpMethod.DELETE;
          } else {
            throw new BadRequestException(HttpResponseStatus.METHOD_NOT_ALLOWED,
              "Unknown or unsupported method override value");
          }
        }
  
        // no override, so just return the method
        return this.method();
      }
    }