http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/98a53eb3/juneau-rest/src/main/java/org/apache/juneau/rest/package.html ---------------------------------------------------------------------- diff --git a/juneau-rest/src/main/java/org/apache/juneau/rest/package.html b/juneau-rest/src/main/java/org/apache/juneau/rest/package.html index 9e2e52d..83ec8a4 100644 --- a/juneau-rest/src/main/java/org/apache/juneau/rest/package.html +++ b/juneau-rest/src/main/java/org/apache/juneau/rest/package.html @@ -638,7 +638,7 @@ <li>{@link org.apache.juneau.rest.RequestHeaders} - API for accessing request headers. <li>{@link org.apache.juneau.rest.RequestQuery} - API for accessing request query parameters. <li>{@link org.apache.juneau.rest.RequestFormData} - API for accessing request form data. - <li>{@link org.apache.juneau.rest.RequestPathParams} - API for accessing path variables. + <li>{@link org.apache.juneau.rest.RequestPathMatch} - API for accessing path variables. <li>{@link org.apache.juneau.rest.RequestBody} - API for accessing request body. </ul> <li>Other: @@ -778,7 +778,7 @@ </p> <p> Paths that end with <js>"/*"</js> will do a prefix match on the incoming URL. - Any remainder after the match can be accessed through {@link org.apache.juneau.rest.RestRequest#getPathRemainder()} + Any remainder after the match can be accessed through {@link org.apache.juneau.rest.RequestPathMatch#getRemainder()} or parameters with the {@link org.apache.juneau.rest.annotation.PathRemainder @PathRemainder} annotation. On the other hand, paths that don't end with <js>"/*"</js> (e.g. <js>"/"</js> or <js>"/foo"</js>) will require an exact URL match, and if any remainder exists, a 404 (not found) error will be thrown. @@ -2088,14 +2088,14 @@ <ul> <li><ck>$R{attribute.X}</ck> - Value returned by {@link org.apache.juneau.rest.RestRequest#getAttribute(String)} converted to a string. <li><ck>$R{contextPath}</ck> - Value returned by {@link org.apache.juneau.rest.RestRequest#getContextPath()}. - <li><ck>$R{formData.X}</ck> - Value returned by {@link org.apache.juneau.rest.RestRequest#getFormData(String)}. - <li><ck>$R{header.X}</ck> - Value returned by {@link org.apache.juneau.rest.RestRequest#getHeader(String)}. + <li><ck>$R{formData.X}</ck> - Value returned by {@link org.apache.juneau.rest.RequestFormData#getFirst(String)}. + <li><ck>$R{header.X}</ck> - Value returned by {@link org.apache.juneau.rest.RequestHeaders#getFirst(String)}. <li><ck>$R{method}</ck> - Value returned by {@link org.apache.juneau.rest.RestRequest#getMethod()}. <li><ck>$R{methodSummary}</ck> - Value returned by {@link org.apache.juneau.rest.RestRequest#getMethodSummary()}. <li><ck>$R{methodDescription}</ck> - Value returned by {@link org.apache.juneau.rest.RestRequest#getMethodDescription()}. - <li><ck>$R{path.X}</ck> - Value returned by {@link org.apache.juneau.rest.RestRequest#getPathParameter(String)}. + <li><ck>$R{path.X}</ck> - Value returned by {@link org.apache.juneau.rest.RequestPathMatch#get(Object)}. <li><ck>$R{pathInfo}</ck> - Value returned by {@link org.apache.juneau.rest.RestRequest#getPathInfo()}. - <li><ck>$R{query.X}</ck> - Value returned by {@link org.apache.juneau.rest.RestRequest#getQuery(String)}. + <li><ck>$R{query.X}</ck> - Value returned by {@link org.apache.juneau.rest.RequestQuery#getFirst(String)}. <li><ck>$R{requestParentURI}</ck> - Value returned by {@link org.apache.juneau.rest.RestRequest#getRequestParentURI()}. <li><ck>$R{requestURI}</ck> - Value returned by {@link org.apache.juneau.rest.RestRequest#getRequestURI()}. <li><ck>$R{servletDescription}</ck> - Value returned by {@link org.apache.juneau.rest.RestRequest#getServletDescription()}. @@ -3166,7 +3166,7 @@ <div class='topic'> <p> Certain methods in the REST server API allow you to specify class types that can be convertable - from <l>Strings</l> (e.g. {@link org.apache.juneau.rest.RestRequest#getPathParameter(String)}). + from <l>Strings</l> (e.g. {@link org.apache.juneau.rest.RequestPathMatch#get(Object)}). </p> <p> POJOs convertable from <l>Strings</l> have one of the following: @@ -3387,13 +3387,12 @@ <ja>@RestMethod</ja>(name=<js>"PUT"</js>, path=<js>"/people/{id}/*"</js>, guards=AdminGuard.<jk>class</jk> ) - <jk>public</jk> String updatePerson(RestRequest req, <ja>@Path</ja> <jk>int</jk> id) <jk>throws</jk> Exception { + <jk>public</jk> String updatePerson(RestRequest req, <ja>@Path</ja> <jk>int</jk> id, <ja>@PathRemainder</ja> String pathRemainder) <jk>throws</jk> Exception { <jk>try</jk> { Person p = findPerson(id); - String pathRemainder = req.getPathRemainder(); PojoRest r = <jk>new</jk> PojoRest(p); ClassMeta<?> cm = r.getClassMeta(pathRemainder); - Object in = req.getBody(cm); + Object in = req.getBody().asType(cm); r.put(pathRemainder, in); <jk>return</jk> <js>"PUT successful"</js>; } <jk>catch</jk> (Exception e) { @@ -3408,13 +3407,12 @@ <ja>@RestMethod</ja>(name=<js>"PUT"</js>, path=<js>"/addresses/{id}/*"</js>, guards=AdminGuard.<jk>class</jk> ) - <jk>public</jk> String updateAddress(RestRequest req, <ja>@Path</ja> <jk>int</jk> id) <jk>throws</jk> Exception { + <jk>public</jk> String updateAddress(RestRequest req, <ja>@Path</ja> <jk>int</jk> id, <ja>@PathRemainder</ja> String pathRemainder) <jk>throws</jk> Exception { <jk>try</jk> { Address a = findAddress(id); - String pathInfo = req.getPathInfo(); PojoRest r = <jk>new</jk> PojoRest(a); - ClassMeta<?> cm = r.getClassMeta(pathInfo); - Object in = req.getBody(cm); + ClassMeta<?> cm = r.getClassMeta(pathRemainder); + Object in = req.getBody().asType(pathRemainder); r.put(pathInfo, in); <jk>return</jk> <js>"PUT successful"</js>; } <jk>catch</jk> (Exception e) {
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/98a53eb3/juneau-rest/src/main/java/org/apache/juneau/rest/response/DefaultHandler.java ---------------------------------------------------------------------- diff --git a/juneau-rest/src/main/java/org/apache/juneau/rest/response/DefaultHandler.java b/juneau-rest/src/main/java/org/apache/juneau/rest/response/DefaultHandler.java index b06479b..b8df147 100644 --- a/juneau-rest/src/main/java/org/apache/juneau/rest/response/DefaultHandler.java +++ b/juneau-rest/src/main/java/org/apache/juneau/rest/response/DefaultHandler.java @@ -37,7 +37,7 @@ public class DefaultHandler implements ResponseHandler { @Override /* ResponseHandler */ public boolean handle(RestRequest req, RestResponse res, Object output) throws IOException, RestException { SerializerGroup g = res.getSerializerGroup(); - String accept = req.getHeader("Accept", ""); + String accept = req.getHeaders().getFirst("Accept", ""); SerializerMatch sm = g.getSerializerMatch(accept); if (sm != null) { Serializer s = sm.getSerializer(); @@ -76,7 +76,7 @@ public class DefaultHandler implements ResponseHandler { } else { throw new RestException(SC_NOT_ACCEPTABLE, "Unsupported media-type in request header ''Accept'': ''{0}''\n\tSupported media-types: {1}", - req.getHeader("Accept", ""), g.getSupportedMediaTypes() + req.getHeaders().getFirst("Accept", ""), g.getSupportedMediaTypes() ); } return true; http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/98a53eb3/juneau-rest/src/main/java/org/apache/juneau/rest/vars/RequestVar.java ---------------------------------------------------------------------- diff --git a/juneau-rest/src/main/java/org/apache/juneau/rest/vars/RequestVar.java b/juneau-rest/src/main/java/org/apache/juneau/rest/vars/RequestVar.java index f02c2ab..0df3a5b 100644 --- a/juneau-rest/src/main/java/org/apache/juneau/rest/vars/RequestVar.java +++ b/juneau-rest/src/main/java/org/apache/juneau/rest/vars/RequestVar.java @@ -70,11 +70,11 @@ public class RequestVar extends SimpleVar { String prefix = k.substring(0, k.indexOf('.')); String remainder = k.substring(k.indexOf('.')+1); if ("path".equals(prefix)) - return req.getPathParameter(remainder); + return req.getPathMatch().get(remainder); if ("query".equals(prefix)) - return req.getQuery(remainder); + return req.getQuery().getFirst(remainder); if ("formData".equals(prefix)) - return req.getFormData(remainder); + return req.getFormData().getFirst(remainder); if ("header".equals(prefix)) return req.getHeader(remainder); if ("attribute".equals(prefix)) @@ -119,7 +119,7 @@ public class RequestVar extends SimpleVar { Object o = req.getProperties().get(key); if (o != null) return o.toString(); - return req.getPathParameter(key); + return req.getPathMatch().get(key); } return null; }
