Package

play.api

routing

Permalink

package routing

Visibility
  1. Public
  2. All

Type Members

  1. case class JavaScriptReverseRoute(name: String, f: String) extends Product with Serializable

    Permalink

    A JavaScript reverse route

  2. trait Router extends AnyRef

    Permalink

    A router.

  3. trait SimpleRouter extends Router

    Permalink

    A simple router that implements the withPrefix and documentation methods for you.

Value Members

  1. object JavaScriptReverseRouter

    Permalink
  2. object Router

    Permalink

    Utilities for routing.

  3. object SimpleRouter

    Permalink
  4. package sird

    Permalink

    The Play "String Interpolating Routing DSL", sird for short.

    The Play "String Interpolating Routing DSL", sird for short.

    This provides: - Extractors for requests that extract requests by method, eg GET, POST etc. - A string interpolating path extractor - Extractors for binding parameters from paths to various types, eg int, long, double, bool.

    The request method extractors return the original request for further extraction.

    The path extractor supports three kinds of extracted values: - Path segment values. This is the default, eg p"/foo/$id". The value will be URI decoded, and may not traverse /'s. - Full path values. This can be indicated by post fixing the value with a *, eg p"/assets/$path*". The value will not be URI decoded, as that will make it impossible to distinguish between / and %2F. - Regex values. This can be indicated by post fixing the value with a regular expression enclosed in angle brackets. For example, p"/foo/$id<[0-9]+>. The value will not be URI decoded.

    The extractors for primitive types are merely provided for convenience, for example, p"/foo/${int(id)}" will extract id as an integer. If id is not an integer, the match will simply fail.

    Example usage:

    import play.api.routing.sird._
    import play.api.routing._
    import play.api.mvc._
    
    Router.from {
      case GET(p"/hello/$to") => Action {
        Results.Ok(s"Hello $to")
      }
      case PUT(p"/api/items/${int(id)}") => Action.async { req =>
        Items.save(id, req.body.json.as[Item]).map { _ =>
          Results.Ok(s"Saved item $id")
        }
      }
    }

Ungrouped