Files
deb-python-falcon/doc/api/routing.rst
Kurt Griffiths bca1bd6197 fix(routing): Restore compile_uri_template
Restore the compile_uri_template function to the routing module to
ensure backwards compatibility with custom routing engines that
rely on it.

Fixes #532
2015-05-04 19:11:13 -05:00

1.4 KiB

Routing

The falcon.routing module contains utilities used internally by :pyfalcon.API to route requests. They are exposed here for use by custom routing engines.

A custom router is any class that implements the following interface:

class FancyRouter(object):
    def add_route(self, uri_template, method_map, resource):
        """Adds a route between URI path template and resource.

        Args:
            uri_template (str): The URI template to add.
            method_map (dict): A method map obtained by calling
                falcon.routing.create_http_method_map.
            resource (object): Instance of the resource class that
                will handle requests for the given URI.
        """

    def find(self, uri):
        """Search for a route that matches the given URI.

        Args:
            uri (str): Request URI to match to a route.

        Returns:
            tuple: A 3-member tuple composed of (resource, method_map, params)
                or ``None`` if no route is found.
        """

A custom routing engine may be specified when instantiating :pyfalcon.API. For example:

fancy = FancyRouter()
api = API(router=fancy)

falcon.routing