2

リソースを追加するときに、特定の POST フィールドに特定の値しか持てない REST API を実装しています。たとえば、usertype フィールドを持つユーザー リソースがあります。この usertype フィールドには、管理者とユーザーの 2 つの値しかありません。

開発者がこれらの許可された値を RESTful な方法で発見できるようにするにはどうすればよいでしょうか?

ありがとう!

4

2 に答える 2

1

メディアタイプで列挙の概念を定義する必要があります。次に、ハイパーメディア コントロールで許容値を列挙して、どこに何を投稿するかを伝えます。たとえば、GETting/usersは次を返す場合があります。

<users href="/users">
    ... collection information and other controls you want to include ...
    <create href="/users" method="post">
        ... fields ...
        <usertype type="enum" cardinality="required">
            <administrator/>
            <user/>
        </usertype>
    </create>
</users>

create要素はフォームであり、要素usertypeはフォーム フィールドであり、administratorおよびuserは列挙の有効な値です。この例に基づいて、コレクション、フォーム、フォーム フィールド、および列挙の構造がメディア タイプで必要になります。

これは実際、私が REST について気に入っている点の 1 つです。この情報は帯域内で伝達されるため、(適切に記述された) クライアントを壊すことなく簡単に変更できます。たとえばeditor、列挙に追加したいと言うだけで、それを追加できます。古いクライアントはそれを無視することができ、新しいクライアントはそれを利用できます。さらに優れているのは、リクエスターの承認に基づいて有効な値を変更できることです。administratorたとえば、リクエスタが管理者の場合、との両方userが有効な値として与えられます。リクエスタが の場合、それらは有効なオプションとしてuserのみ提供されます。userうるさい!

于 2012-10-09T11:53:16.267 に答える
0

簡単な解決策は、許可された値を返す読み取り専用リソース /usertypes です。

于 2012-10-09T12:12:27.400 に答える