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">の子として使用される<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>

これはやり過ぎのように見えます。仕様では「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 に答える