Generates GitHub Markdown formatted API documentation using
    provided schemas in RequestHandler methods and their docstrings.

    :type  routes: [(url, RequestHandler), ...]
    :param routes: List of routes (this is ideally all possible routes of the
        app)
    :rtype: str
    :returns: generated GFM-formatted documentation

def get_api_docs(routes):
    """
    Generates GitHub Markdown formatted API documentation using
    provided schemas in RequestHandler methods and their docstrings.

    :type  routes: [(url, RequestHandler), ...]
    :param routes: List of routes (this is ideally all possible routes of the
        app)
    :rtype: str
    :returns: generated GFM-formatted documentation
    """
    routes = map(_get_tuple_from_route, routes)
    documentation = []
    for url, rh, methods in sorted(routes, key=lambda a: a[0]):
        if issubclass(rh, APIHandler):
            documentation.append(_get_route_doc(url, rh, methods))

    documentation = (
        "**This documentation is automatically generated.**\n\n" +
        "**Output schemas only represent `data` and not the full output; " +
        "see output examples and the JSend specification.**\n" +
        "\n<br>\n<br>\n".join(documentation)
    )
    return documentation