### Apache Airflow version

Other Airflow 2 version (please specify below)

### What happened

Airflow 2.3.4 (but actual code seems to have same behaviour).

I have mapped task with xcom value.

I want to get xcom value of particular instance or xcom values of all task instances.

I am using standard REST API method /dags/{dag_id}/dagRuns/{dag_run_id}/taskInstances/{task_id}/xcomEntries/{xcom_key}

And it throws an error
`
  File &#34;/home/airflow/.local/lib/python3.9/site-packages/sqlalchemy/orm/query.py&#34;, line 2850, in one_or_none
    return self._iter().one_or_none()
  File &#34;/home/airflow/.local/lib/python3.9/site-packages/sqlalchemy/engine/result.py&#34;, line 1510, in one_or_none
    return self._only_one_row(
  File &#34;/home/airflow/.local/lib/python3.9/site-packages/sqlalchemy/engine/result.py&#34;, line 614, in _only_one_row
    raise exc.MultipleResultsFound(
sqlalchemy.exc.MultipleResultsFound: Multiple rows were found when one or none was required
`

Is it any way of getting xcom of mapped tasks via API?

### What you think should happen instead

_No response_

### How to reproduce

Make dag with mapped task. Return xcom value in every task. Try to get xcom value via API.

### Operating System

ubuntu 20.04

### Versions of Apache Airflow Providers

_No response_

### Deployment

Other

### Deployment details

Standard

### Anything else

_No response_

### Are you willing to submit PR?

- [ ] Yes I am willing to submit a PR!

### Code of Conduct

- [X] I agree to follow this project's [Code of Conduct](https://github.com/apache/airflow/blob/main/CODE_OF_CONDUCT.md)

for marker in item.iter_markers(name="credential_file"):
        credential_file = marker.args[0]
        credential_path = os.path.join(os.environ.get("CREDENTIALS_DIR"), credential_file)
        if not os.path.exists(credential_path):
            pytest.skip(f"The test requires credential file {credential_path}: {item}")
def pytest_runtest_setup(item):
    selected_integrations_list = item.config.getoption("--integration")
    selected_systems_list = item.config.getoption("--system")
    include_long_running = item.config.getoption("--include-long-running")
    include_quarantined = item.config.getoption("--include-quarantined")
    for marker in item.iter_markers(name="integration"):
        skip_if_integration_disabled(marker, item)
    if selected_integrations_list:
        skip_if_not_marked_with_integration(selected_integrations_list, item)
    if selected_systems_list:
        skip_if_not_marked_with_system(selected_systems_list, item)
    else:
        skip_system_test(item)
    for marker in item.iter_markers(name="backend"):
        skip_if_wrong_backend(marker, item)
    selected_backend = item.config.getoption("--backend")
    if selected_backend:
        skip_if_not_marked_with_backend(selected_backend, item)
    if not include_long_running:
        skip_long_running_test(item)
    if not include_quarantined:
        skip_quarantined_test(item)
    skip_if_credential_file_missing(item)
@pytest.fixture
def frozen_sleep(monkeypatch):