オブジェクトとIDと名前で構成されるWidgetがあるとします。クライアントが新しいWidgetオブジェクトをPOSTできるエンドポイント/ widgetを公開するとしましょう。 IDフィールドをクライアントが変更することはできませんが、依然としてクライアントには見えるようにするには、IDフィールドを変更できないと宣言することはできますか?私はそれが何か違いがあれば、RESTeasyを使っています。RESTful APIの特定のフィールドへの更新を制限する
答えて
私はいくつかのオプションを考えることができます。
まず、表現の一部としてIDを公開する必要がありますか?それとも、新しい投稿されたリソースの場所を返すだけで十分ですか?
あなたのクライアントのポスト:
<Resource><Name>New Resource</Name></Resource>
そして、あなたが応答:その向こう
HTTP/1.1 201 Created
...
Location: /resources/{new_resource_id}
は、私はそれはあなたのクライアントとのいくつかの簡単な、よく理解規則を持ってOKだと思います。ほとんどの開発者は、IDがシステム生成される可能性が高いことを理解していると思います(特にPUTではなくPUTを実行しているため)。あなたは、任意の読み取り専用フィールド持っている(または他の検証をや情報を表示する)あまり目立たない例については、私はそれは、メタデータへのリンクを提供するために意味をなすかもしれないと思う:までですのようにメタデータが見える何
<NewPersonForm>
<atom:link href="/people/new/metadata" rel="/rels/metadata" />
<Name />
<Department>HR</Department>
</NewPersonForm>
あなたが、これらの線に沿って何かあなたのために働くかもしれない:
<Metadata>
<Element>
<Name>Department</Name>
<IsReadOnly>True</IsReadOnly>
</Element>
</Metadata>
クライアントに情報を提供するために、素敵な、フォーマットニュートラル(それはXMLとJSONの両方に適しています)方法だ、と彼らは本当にしたい場合は、彼らは、フォームに基づいてフォームを構築することができます(検証情報、言語固有のラベル、データ型情報を提供するために使用します)。
こちらがお役に立てば幸いです。
ジョン
あなたは何でも自由に行うことができるコードをサーバーに書きます。それには、必要に応じてデータの追加や変更が含まれます。
サーバが POSTさエントリを変更して自由であるので、例えば、原子の 内容を変更することにより、::id要素を、 エントリを返すことに役立つことができ、明示的に述べてAtomPub protocol section 9.2をチェック クライアントのクライアントビューとサーバービューに の新しい エントリを関連付けることができます。
- 1. 特定のカテゴリのページへのAPI検索を制限する
- 2. RESTfulリソースへのアクセスを制限する
- 3. Excelへのアクセス中に特定のフィールドを更新する
- 4. 特定のカテゴリへのクエリの制限
- 5. SharePoint 2010リスト内の特定のフィールドへの編集を制限する
- 6. WooCommerce:「製品の更新」APIで返されるフィールドを制限する
- 7. REST APIへのアクセスを制限する
- 8. Drupal 7:特定のユーザーロールへのファイルアクセスを制限する方法
- 9. 特定のユーザープロファイルへのアクセスを制限する
- 10. ASP.net - 特定のマシンへのユーザーログインを制限する
- 11. 特定のマシンへのユーザーログインを制限する方法は?
- 12. AWS特定のSQSキューへのアクセスを制限するIAMユーザポリシー
- 13. 特定のTeamCityプロジェクトへのアクセスを制限する
- 14. 特定のGoogleグループメンバーへのアクセスを制限する
- 15. dnd、特定のノードタイプへのドロップを制限する方法は?
- 16. Postgresql、特定の列の更新を制限する(読み取り専用)
- 17. JPA:更新のみ特定のフィールド
- 18. 特定のサブドメインへの特定の呼び出しを制限しますか?
- 19. Rails:JSON形式へのAPIリクエストの制限
- 20. 特定のテーブルへのOracleの更新が無期限に実行される
- 21. RESTful APIの無制限パラメータを使用したLaravelルート
- 22. django rest framework:更新可能なフィールドを制限する
- 23. elasticsearchの特定のフィールド値のみを更新する
- 24. asmx Webサービスの特定のIPアドレスへのアクセス制限
- 25. MYSQLからSQLへの更新の制限
- 26. asp.netでの特定のフォルダへのアクセスを制限する方法
- 27. LAMPベースCMSへの特定のクエリの使用を制限する方法
- 28. Apache:仮想ホスト内の特定のソースIPへのアクセスを制限する
- 29. Java:メソッドの特定のクラスへのアクセスを制限する方法は?ここ
- 30. Javaアプレットを開発して特定のディレクトリツリーへのアクセスを制限する