Hello
I’m not sure if my email to
jaxrs-spec@xxxxxxxxxxxxxxxx was ever read by anyone. Thankfully Ron Sigal pointed me here discussing a RestEasy PR (https://github.com/resteasy/Resteasy/pull/2152#issuecomment-541206591).
The improvement to the JAX-RS spec that I would like to suggest is part of a Pull Request I’ve made to the jax-rs/spec project in GitHub:
https://github.com/jax-rs/spec/pull/6 but that projects seems to have been inactive since the release of JAX-RS 2.1.
So I hope to get some feedback on the proposed changes here and to learn if and how the JAX-RS spec is further developed.
Regards,
Reto
From: Reto Gmür
Sent: Sunday, September 1, 2019 8:23 PM
To: jaxrs-spec@xxxxxxxxxxxxxxxx
Subject: More expressive definition of the qs value
Hello
The HTTP RFC 7231 defines the q-value as “relative ‘weight’ to the preference”. The two examples provided in section 5.3.2 imply two different interpretations of what that means. The first interpretation the weight is relative to the quality
in which the server can provide a specified format while in the second example the weight only indicates a relative preference. The JAX-RS specification interprets the q value and defines the qs value only as a sorting key to determine the preference over
other formats in the same set.
I argue that following example included in RFC 7231 provides the better interpretation of the q-value and this would suggest a more powerful definition of the qs value:
Accept: audio/*; q=0.2, audio/basic
is interpreted as "I prefer audio/basic, but send me any audio type
if it is the best available after an 80% markdown in quality".
By this interpretation a definition of qs would suggest itself by which qs is not merely a tertiary sorting criteria but an indicator of the quality in which a response in that format can be produced. So for example if the server can produce
audio/basic; qs=0.1 and audio/extended; qs=1 the server should return audio/extended as after an 80% markdown in quality it is the best available format.
To achieve this, in Section 3.8 step 7 the secondary key for sorting M could be defined as the product of q and qs and no tertiary key would be needed.
Regards,
Reto