On Feb 11, 2008, at 6:24 PM, Dhanji R. Prasanna wrote:
>
> On Feb 12, 2008 8:31 AM, Bill Burke <bburke_at_redhat.com> wrote:
> I think some form of @Cookie injection would be useful:
>
> @GET
> public String get(@Cookie("myCookie") int value)
> {
> }
>
> Would save a lot of typing. The only problem I see with this is
> that it
> overloads with javax.ws.rs.core.Cookie. Maybe rename the object to
> CookieInstance?
>
> I'm thinking you could also do:
>
> @GET
> public String get(@Cookie("myCookie") CookieInstance instance){}
>
> Hmm. Not a bad idea. Why not:
>
> public Response get(@Param("cookieName") javax.servlet...Cookie
> cookie);
>
> ?
>
Do you mean @HeaderParam or a new annotation @Param ?
We've also had a request for @PostParam/_at_FormParam to allow extraction
of parameters from posted form data.
I wonder if there's a way to unify all of this somehow like we did for
method designators by making @HttpMethod a meta annotation. Something
like:
@Target({ElementType.ANNOTATION_TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface RequestParam {
public enum Source {HEADER, QUERY, MATRIX, PATH, COOKIE, FORM};
Source source();
}
and then we could redefine our existing XXXParam annotations using
this new meta annotation, e.g.:
@Target({ElementType.PARAMETER})
@Retention(RetentionPolicy.RUNTIME)
@RequestParam(source=QUERY)
public @interface QueryParam {
String value();
}
Not sure if this really helps, it does allow others to define their
own annotations but the list of sources is still fixed.
Thoughts ?
Marc.
---
Marc Hadley <marc.hadley at sun.com>
CTO Office, Sun Microsystems.