<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def get_uri(endpoint_context, request, uri_type):
 """ verify that the redirect URI is reasonable :param endpoint_context: :param request: The Authorization request :param uri_type: 'redirect_uri' or 'post_logout_redirect_uri' :return: redirect_uri """

    if uri_type in request:
        verify_uri(endpoint_context, request, uri_type)
        uri = request[uri_type]
    else:
        try:
            _specs = endpoint_context.cdb[
                str(request["client_id"])]["{}s".format(uri_type)]
        except KeyError:
            raise ParameterError(
                "Missing {} and none registered".format(uri_type))
        else:
            if len(_specs) > 1:
                raise ParameterError(
                    "Missing {} and more than one registered".format(uri_type))
            else:
                uri = join_query(*_specs[0])

    return uri