6

查看当前版本的 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>

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

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

“URI 查询”位让我大吃一惊,因为对我来说,它建议将参数附加到 URI 而不是包含在正文中。

另一方面,对于<param style="query">用作 的子级的 a <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>

这看起来有点矫枉过正。我假设我应该能够使用前者,即使规范提到了“URI 查询”。

4

1 回答 1

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>
于 2010-05-31T19:34:02.877 回答