[
https://issues.apache.org/jira/browse/CXF-8216?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Andrei Ivanov updated CXF-8216:
-------------------------------
Description:
After reading
[https://nakov.com/blog/2009/07/15/jax-rs-path-pathparam-and-optional-parameters/],
I tried to define my own:
{code:xml}
<resource path="/{uuid}\{version:(/version/[^/]+?)?\}/scan-code/{codez}">
<param name="uuid" style="template" type="ns:UUID" required="true"/>
<param name="version" style="template" type="xs:unsignedInt"
required="false"/>
<param name="codez" style="template" required="true" />
<method id="scanCode" name="PATCH">
<doc>Scan code</doc>
<request>
<!--
<param name="version" style="matrix" type="xs:unsignedInt">
<doc>Version of the sales transaction.</doc>
</param>
-->
</request>
<response>
<representation mediaType="application/json"
element="ns:SalesTransaction"/>
<representation mediaType="application/xml"
element="ns:SalesTransaction"/>
</response>
</method>
</resource>
{code}
The problem seems to be that the generator treats *path* params as
[required|https://github.com/apache/cxf/blob/5ed6310b1621f8a61172c3be85ab66af0310af67/tools/wadlto/jaxrs/src/main/java/org/apache/cxf/tools/wadlto/jaxrs/SourceGenerator.java#L1246].
I was actually trying to define it as a *matrix* param, but it seems that a
matrix param isn't really supported by JAX-RS at the end of the URL, not in
middle path segments.
was:
After reading
https://nakov.com/blog/2009/07/15/jax-rs-path-pathparam-and-optional-parameters/,
I tried to define my own:
{code:xml}
<resource path="/{uuid}{version:(/version/[^/]+?)?}/scan-code/{code}">
<param name="uuid" style="template" type="ns:UUID" required="true"/>
<param name="version" style="template" type="xs:unsignedInt"
required="false"/>
<param name="code" style="template" required="true" />
<method id="scanCode" name="PATCH">
<doc>Scan code</doc>
<request>
<!--
<param name="version" style="matrix" type="xs:unsignedInt">
<doc>Version of the sales transaction.</doc>
</param>
-->
</request>
<response>
<representation mediaType="application/json"
element="ns:SalesTransaction"/>
<representation mediaType="application/xml"
element="ns:SalesTransaction"/>
</response>
</method>
</resource>
{code}
The problem seems to be that the generator treats *path* params as
[required|https://github.com/apache/cxf/blob/5ed6310b1621f8a61172c3be85ab66af0310af67/tools/wadlto/jaxrs/src/main/java/org/apache/cxf/tools/wadlto/jaxrs/SourceGenerator.java#L1246].
> Support optional path params in wadl2java
> -----------------------------------------
>
> Key: CXF-8216
> URL: https://issues.apache.org/jira/browse/CXF-8216
> Project: CXF
> Issue Type: Bug
> Components: Tooling
> Affects Versions: 3.3.5
> Reporter: Andrei Ivanov
> Priority: Major
>
> After reading
> [https://nakov.com/blog/2009/07/15/jax-rs-path-pathparam-and-optional-parameters/],
> I tried to define my own:
> {code:xml}
> <resource path="/{uuid}\{version:(/version/[^/]+?)?\}/scan-code/{codez}">
> <param name="uuid" style="template" type="ns:UUID" required="true"/>
> <param name="version" style="template" type="xs:unsignedInt"
> required="false"/>
> <param name="codez" style="template" required="true" />
> <method id="scanCode" name="PATCH">
> <doc>Scan code</doc>
> <request>
> <!--
> <param name="version" style="matrix" type="xs:unsignedInt">
> <doc>Version of the sales transaction.</doc>
> </param>
> -->
> </request>
> <response>
> <representation mediaType="application/json"
> element="ns:SalesTransaction"/>
> <representation mediaType="application/xml"
> element="ns:SalesTransaction"/>
> </response>
> </method>
> </resource>
> {code}
> The problem seems to be that the generator treats *path* params as
> [required|https://github.com/apache/cxf/blob/5ed6310b1621f8a61172c3be85ab66af0310af67/tools/wadlto/jaxrs/src/main/java/org/apache/cxf/tools/wadlto/jaxrs/SourceGenerator.java#L1246].
> I was actually trying to define it as a *matrix* param, but it seems that a
> matrix param isn't really supported by JAX-RS at the end of the URL, not in
> middle path segments.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)