jsr339-experts@jax-rs-spec.java.net

[jsr339-experts] Re: Injecting a sub-resource method path parameter into a resource field - legal or not?

From: Sergey Beryozkin <sberyozkin_at_talend.com>
Date: Thu, 23 Feb 2012 13:46:00 +0000

On 23/02/12 13:37, Marek Potociar wrote:
> To elaborate more, consider also the extended example:
>
> @Path("foo")
> public class FooResource {
> @PathParam("id") String id;
>
> @GET
> public String getFoo() {
> return id;
> }
>
> @GET
> @Path("bar/{id}")
> public String getBar() {
> return id;
> }
> }
>
> Should the above be legal? What should be returned for a GET "/foo" request?

'null' - because no "id" template var has been captured in context of
getFoo(), this is why this style is limited to the per-request root
resources only, not thread-safe otherwise

Cheers, Sergey

>
> Marek
>
> On 02/23/2012 12:01 PM, Marek Potociar wrote:
>> Hello experts,
>>
>> we've received a bug report in Jersey about the following use case:
>>
>> @Path("foo")
>> public class FooResource {
>> @PathParam("id") String id;
>>
>> @GET
>> @Path("bar/{id}")
>> public String get() {
>> return id;
>> }
>> }
>>
>> My question is, given the "id" path template is defined on a sub-resource method, should the value still be injectable
>> into the resource field or not?
>>
>> IOW, with the example above, what should be a result of GET "/foo/bar/baz" request? Should it be "baz" or null ?
>>
>> Thanks,
>> Marek


-- 
Sergey Beryozkin
Talend Community Coders
http://coders.talend.com/
Blog: http://sberyozkin.blogspot.com