mirror of
https://github.com/servo/servo.git
synced 2025-08-12 17:05:33 +01:00
Update web-platform-tests to revision 0d318188757a9c996e20b82db201fd04de5aa255
This commit is contained in:
parent
b2a5225831
commit
1a81b18b9f
12321 changed files with 544385 additions and 6 deletions
78
tests/wpt/web-platform-tests/tools/wptserve/docs/router.rst
Normal file
78
tests/wpt/web-platform-tests/tools/wptserve/docs/router.rst
Normal file
|
@ -0,0 +1,78 @@
|
|||
Router
|
||||
======
|
||||
|
||||
The router is used to match incoming requests to request handler
|
||||
functions. Typically users don't interact with the router directly,
|
||||
but instead send a list of routes to register when starting the
|
||||
server. However it is also possible to add routes after starting the
|
||||
server by calling the `register` method on the server's `router`
|
||||
property.
|
||||
|
||||
Routes are represented by a three item tuple::
|
||||
|
||||
(methods, path_match, handler)
|
||||
|
||||
`methods` is either a string or a list of strings indicating the HTTP
|
||||
methods to match. In cases where all methods should match there is a
|
||||
special sentinel value `any_method` provided as a property of the
|
||||
`router` module that can be used.
|
||||
|
||||
`path_match` is an expression that will be evaluated against the
|
||||
request path to decide if the handler should match. These expressions
|
||||
follow a custom syntax intended to make matching URLs straightforward
|
||||
and, in particular, to be easier to use than raw regexp for URL
|
||||
matching. There are three possible components of a match expression:
|
||||
|
||||
* Literals. These match any character. The special characters \*, \{
|
||||
and \} must be escaped by prefixing them with a \\.
|
||||
|
||||
* Match groups. These match any character other than / and save the
|
||||
result as a named group. They are delimited by curly braces; for
|
||||
example::
|
||||
|
||||
{abc}
|
||||
|
||||
would create a match group with the name `abc`.
|
||||
|
||||
* Stars. These are denoted with a `*` and match any character
|
||||
including /. There can be at most one star
|
||||
per pattern and it must follow any match groups.
|
||||
|
||||
Path expressions always match the entire request path and a leading /
|
||||
in the expression is implied even if it is not explicitly
|
||||
provided. This means that `/foo` and `foo` are equivalent.
|
||||
|
||||
For example, the following pattern matches all requests for resources with the
|
||||
extension `.py`::
|
||||
|
||||
*.py
|
||||
|
||||
The following expression matches anything directly under `/resources`
|
||||
with a `.html` extension, and places the "filename" in the `name`
|
||||
group::
|
||||
|
||||
/resources/{name}.html
|
||||
|
||||
The groups, including anything that matches a `*` are available in the
|
||||
request object through the `route_match` property. This is a
|
||||
dictionary mapping the group names, and any match for `*` to the
|
||||
matching part of the route. For example, given a route::
|
||||
|
||||
/api/{sub_api}/*
|
||||
|
||||
and the request path `/api/test/html/test.html`, `route_match` would
|
||||
be::
|
||||
|
||||
{"sub_api": "html", "*": "html/test.html"}
|
||||
|
||||
`handler` is a function taking a request and a response object that is
|
||||
responsible for constructing the response to the HTTP request. See
|
||||
:doc:`handlers` for more details on handler functions.
|
||||
|
||||
.. _router.Interface:
|
||||
|
||||
:mod:`Interface <wptserve>`
|
||||
---------------------------
|
||||
|
||||
.. automodule:: wptserve.router
|
||||
:members:
|
Loading…
Add table
Add a link
Reference in a new issue