Files
deb-python-falcon/docs/api/routing.rst
Kurt Griffiths 90beceeb7b chore: Rename the "doc" folder to "docs" (#875)
Rename the "doc" folder to "docs" to be consistent with the tox env
name. RTD also seems to expect "docs" as its first choice, even though
it will discover "doc" as well.
2016-08-27 11:55:09 -06: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