使用WADL记录POST参数

Ate*_*ral 6 documentation web-services wadl

查看当前版本的WADL提议,我无法弄清楚如何记录POST请求参数(带application/x-www-form-urlencoded编码).

我在野外看到过类似的东西:

<resource path="/path1">
<!-- default is mediaType="application/x-www-form-urlencoded" -->
    <method name="POST">
        <request>
            <name="param1" style="query"/>
        </request>
    </method>
</resource>
Run Code Online (Sandbox Code Playgroud)

但是,对于<param style="query">作为孩子使用的<request>,规范将其描述为:

指定根据queryType属性指定的查询组件媒体类型的规则表示的URI查询参数.

"URI查询"位让我失望,因为对我来说,它建议将参数附加到URI而不是包含在正文中.

另一方面,对于<param style="query">作为孩子使用<representation>,规范有:

将表示的组件指定为根据媒体类型的规则格式化的名称值对.通常与媒体类型'application/x-www-form-urlencoded'或'multipart/form-data'一起使用.

我是否必须使用<representation>元素显式记录将作为POST主体的一部分在编码中发送的参数?

<resource path="/path1">
    <method name="POST">
        <request>
            <representation mediaType="application/x-www-form-urlencoded">
                <name="param1" style="query"/>
            </representation>
        </request>
    </method>
</resource>
Run Code Online (Sandbox Code Playgroud)

这看起来像是一种矫枉过正.我假设我应该能够使用前者,即使规范提到"URI查询".

Ate*_*ral 3

现在我发现我实际上应该使用后一种形式。即使简单地记录一些 POST 参数看起来有点过分,但最好明确记录这些参数是 body == 表示的一部分这一事实。

第三者编辑

后一个可能指的是这个

<resource path="/path1">
    <method name="POST">
        <request>
            <representation mediaType="application/x-www-form-urlencoded">
                <name="param1" style="query"/>
            </representation>
        </request>
    </method>
</resource>
Run Code Online (Sandbox Code Playgroud)