### Apache Airflow version

2.5.3

### What happened

It seems that the order_by parameters is not used when calling dags list with the rest api

The following two commands returns the same results which should not be possible cause one is ascending and the other descending 

curl -X 'GET'   'http://<server_name>:<port>/api/v1/dags?limit=100&order_by=dag_id&only_active=true'  -H 'accept: application/json'

curl -X 'GET'   'http://<server_name>:<port>/api/v1/dags?limit=100&order_by=-dag_id&only_active=true'  -H 'accept: application/json'


by the way, giving an incorrect field name doesn't throw an error

### What you think should happen instead

_No response_

### How to reproduce

The following two commands returns the same results
curl -X 'GET'   'http://<server_name>:<port>/api/v1/dags?limit=100&order_by=-dag_id&only_active=true'  -H 'accept: application/json'

curl -X 'GET'   'http://<server_name>:<port>/api/v1/dags?limit=100&order_by=dag_id&only_active=true'  -H 'accept: application/json'

Same problem is visible with the swagger ui

### Operating System

PRETTY_NAME="Debian GNU/Linux 11 (bullseye)" NAME="Debian GNU/Linux" VERSION_ID="11" VERSION="11 (bullseye)" VERSION_CODENAME=bullseye ID=debian HOME_URL="https://www.debian.org/" SUPPORT_URL="https://www.debian.org/support" BUG_REPORT_URL="https://bugs.debian.org/"

### Versions of Apache Airflow Providers

apache-airflow-providers-common-sql==1.3.4
apache-airflow-providers-ftp==3.3.1
apache-airflow-providers-http==4.2.0
apache-airflow-providers-imap==3.1.1
apache-airflow-providers-microsoft-mssql==3.3.2
apache-airflow-providers-mysql==4.0.2
apache-airflow-providers-oracle==3.6.0
apache-airflow-providers-sqlite==3.3.1
apache-airflow-providers-vertica==3.3.1


### Deployment

Official Apache Airflow Helm Chart

### Deployment details

_No response_

### 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)

}
            },
            "schedule_interval": {
                "__type": "TimeDelta",
                "days": 1,
                "microseconds": 0,
                "seconds": 0,
            },
            "start_date": "2020-06-15T00:00:00+00:00",
            "tags": [{"name": "example"}],
            "timezone": "Timezone('UTC')",
            "max_active_runs": 16,
            "pickle_id": None,
            "end_date": None,
            "is_paused_upon_creation": None,
            "last_parsed": last_parsed,
            "render_template_as_native_obj": False,
        }
        assert response.json == expected
    def test_should_response_200_with_doc_md_none(self, current_file_token):
        response = self.client.get(
            f"/api/v1/dags/{self.dag2_id}/details", environ_overrides={"REMOTE_USER": "test"}
        )
        assert response.status_code == 200
        last_parsed = response.json["last_parsed"]
        expected = {
            "catchup": True,
            "concurrency": 16,
            "max_active_tasks": 16,
            "dag_id": "test_dag2",