A component that does the following:
- Maintains a routing table that maps a URI Template to a route handler
- Tests incoming REST API requests against the routing table to determine which route handler should handle the request
- Executes the route handler
- Returns results of the route handler to the client
The router should manage common REST API functionality, to avoid repetition in each handler. This should include:
- Handling HTTP caching headers (If-Modified-Since, If-None-Match)
- Authentication