Currently if an API URL that does not exist is requested, an html page is returned instead of JSON

**Apache Airflow version**:2.0

**What happened**:
Making a request against an endpoint that does not exist returns an html page

**What you expected to happen**:

I expected it to return 404 error in JSON indicating that the URL was not found

**How to reproduce it**:
1. Start airflow website and scheduler in breeze.
2. Make a request against an endpoint that does not exist e.g http://localhost:28080/api/v1/getconnectiond
3. Notice that an html page is returned instead of a json
cc: @mik-laj 

airflow/api_connexion/exceptions.py
"""Raise when the server processes a bad request"""
    def __init__(
        self,
        title: str = 'Bad Request',
        detail: Optional[str] = None,
        headers: Optional[Dict] = None,
        **kwargs,
    ):
        super().__init__(
            status=400, type=EXCEPTIONS_LINK_MAP[400], title=title, detail=detail, headers=headers, **kwargs
        )
class Unauthenticated(ProblemException):
    """Raise when the user is not authenticated"""
    def __init__(
        self,
        title: str = 'Unauthorized',
        detail: Optional[str] = None,
        headers: Optional[Dict] = None,
        **kwargs,
    ):
        super().__init__(
            status=401, type=EXCEPTIONS_LINK_MAP[401], title=title, detail=detail, headers=headers, **kwargs
        )
class PermissionDenied(ProblemException):