def METHOD_NAME(
    self, params: ApiParams, request: Request, context: ApiContext
) -> Response:
    """
    This function is using Quisby to compare results into a form that supports visualization
    Args:
        params: includes the uri parameters, which provide the list of dataset.
        request: Original incoming Request object
        context: API context dictionary
    Raises:
        UnauthorizedAccess : The user isn't authorized for the requested access.
        APIAbort, reporting "NOT_FOUND" and "INTERNAL_SERVER_ERROR"
        APIInternalError, reporting the failure message
    GET /api/v1/compare?datasets=d1,d2,d3
    """
    datasets = params.query.get("datasets")
    benchmark_choice = None
    for dataset in datasets:
        # Check that the user is authorized to read each dataset
        self._check_authorization(
            ApiAuthorization(
                ApiAuthorizationType.USER_ACCESS,
                OperationCode.READ,
                dataset.owner_id,
                dataset.access,
            )
        )
        # Determine the dataset benchmark and check consistency
        benchmark = DatasetsCompare.get_benchmark_name(dataset)
        if not benchmark_choice:
            benchmark_choice = benchmark
        elif benchmark != benchmark_choice:
            raise APIAbort(
                HTTPStatus.BAD_REQUEST,
                f"Selected dataset benchmarks must match: {benchmark_choice} and {benchmark} cannot be compared.",
            )
    benchmark_type = BenchmarkName.__members__.get(benchmark.upper())
    if not benchmark_type:
        raise APIAbort(
            HTTPStatus.BAD_REQUEST, f"Unsupported Benchmark: {benchmark}"
        )
    cache_m = CacheManager(self.config, current_app.logger)
    stream_file = {}
    for dataset in datasets:
        try:
            info = cache_m.get_inventory(dataset.resource_id, "result.csv")
            file = info["stream"].read().decode("utf-8")
            info["stream"].close()
        except Exception as e:
            raise APIInternalError(
                f"{dataset.name} is missing 'result.csv' file"
            ) from e
        stream_file[dataset.name] = file
    quisby_response = QuisbyProcessing().compare_csv_to_json(
        benchmark_type, InputType.STREAM, stream_file
    )
    if quisby_response["status"] != "success":
        raise APIInternalError(
            f"Quisby processing failure. Exception: {quisby_response['exception']}"
        )
    quisby_response["benchmark"] = benchmark
    return jsonify(quisby_response)