Skip to content

FastAPI Utilities

get_base_url(val)

Get base url only scheme and netloc from request object or URL object.

Parameters:

Name Type Description Default
val (Request | URL, required)

Request object or URL object to extract base url.

required

Returns:

Name Type Description
str str

Base url only scheme and netloc.

Source code in src/potato_util/http/fastapi.py
@validate_call(config={"arbitrary_types_allowed": True})
def get_base_url(val: Request | URL) -> str:
    """Get base url only scheme and netloc from request object or URL object.

    Args:
        val (Request | URL, required): Request object or URL object to extract base url.

    Returns:
        str: Base url only scheme and netloc.
    """

    _base_url = ""
    if isinstance(val, Request):
        _base_url = str(val.base_url)[:-1]
    else:
        _base_url = f"{val.scheme}://{val.netloc}"

    return _base_url

get_relative_url(val)

Get relative url only path with query params from request object or URL object.

Parameters:

Name Type Description Default
val (Request | URL, required)

Request object or URL object to extract relative url.

required

Returns:

Name Type Description
str str

Relative url only path with query params.

Source code in src/potato_util/http/fastapi.py
@validate_call(config={"arbitrary_types_allowed": True})
def get_relative_url(val: Request | URL) -> str:
    """Get relative url only path with query params from request object or URL object.

    Args:
        val (Request | URL, required): Request object or URL object to extract relative url.

    Returns:
        str: Relative url only path with query params.
    """

    if isinstance(val, Request):
        val = val.url

    _relative_url = str(val).replace(f"{val.scheme}://{val.netloc}", "")
    return _relative_url