問題タブ [json-patch]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - c# json 強制パッチ
空の is JSON オブジェクトがあるとしましょう:
パッチを適用して C# を使用して不足しているパスを強制的に作成する方法はありますか? したがって、パッチ後は次のようになります。
結果は次のようになります。{ a: { b: "foo" } }
mongodb - JSON パッチを使用した Mongoose Array の更新の検証
私は現在、JSON パッチ仕様を使用して、Mongoose ORM を使用して MongoDB を部分的に更新する API を構築しています。
ノード モジュールmongoose-json-patchを使用して、次のようにドキュメントにパッチを適用しています。
主な問題は、JSON パッチ構文で配列要素を削除または置換しようとしたときに発生します。
これにより、配列の最初の項目 (「Walking」) が新しい値 (「Working」) に置き換えられますが、実際に何が置き換えられているかを検証する方法がわかりません。パッチが適用される前に別のリクエストが /interests/0 を削除した場合、「食べる」は「歩く」ではなく「働く」に置き換えられ、配列には存在しなくなります。
クライアントが「Walking」を編集していると思っている場合は、編集に成功するか、少なくともエラーが発生することを確認したいと思います。
asp.net-core - JsonPatchDocument で .Net Core Web API を使用する
私は自分のエンティティを更新するために使用しています。これは、次のように見えるJsonPatchDocument
場合にうまく機能しますJSON
オブジェクトを作成すると、Operations
ノードで変換されます
JSON オブジェクトがそのように見える場合、パッチは機能しません。を使用して変換する必要があると思います
問題は、私が.netコアを使用しているため、どこに追加するか100%わからないことですJsonPatchFormatter
json - Angular 2 アプリケーションで fast-json-patch を使用するには?
Angular 2 アプリケーションで「fast-json-patch」ライブラリ ( https://github.com/Starcounter-Jack/JSON-Patch )を使用したいと考えています。
私は追加しようとしました:
'fast-json-patch': 'vendor/fast-json-patch/dist/json-patch-duplex.min.js'
の下のsystem-config.ts
ファイルにありますmap
が、インポート時には機能しませんfast-json-patch
json - HTTP ReST: 大規模なコレクションを更新: JSON PATCH よりも優れたアプローチ?
リストの更新を定期的に受け取る Web サービスを設計しています。この時点で、リストは単一のエンティティ ( /lists/myList
) または多くのリソースを持つ実際のコレクション( ) としてモデル化でき/lists/myList/entries/<ID>
ます。リストは大きく (数百万のエントリ)、更新は小規模です (多くの場合、10 未満の変更)。
クライアントは配布する Web サービスの URL とリストを取得します。例:
- http://hostA/service/lists : list1、list2
- http://hostB/service/lists : list2、list3
- http://hostC/service/lists : list1、list3
次に、設定どおりにリストと更新をプッシュします。Web サービス URL の背後に何らかのデータベースが存在する可能性がありますが、不明です。
私は調査してきましたが、JSON パッチ形式を使用した HTTP PATCH が最良のアプローチであるようです。
コンテキストと例: 各リストには、識別名、優先順位、および何百万ものエントリがあります。各エントリには、ID (クライアントによって決定される) といくつかのオプションの属性があります。優先度 1 と 2 つのリスト エントリを持つリスト "requiredItems" を作成する例:
更新の場合、クライアントはまずサーバー上でリストがどのように見えるかを知る必要があります。このために、リスト エンティティにプロパティ「リビジョン」を追加します。
次に、この属性を照会します。
次に、クライアントは、サーバー上のリビジョンとクライアントが認識している最新のリビジョンとの間で何を変更する必要があるかを確認し、JSON パッチを作成します。例:
質問:
- このアプローチには、あまり使用されない HTTP 動詞 PATCH が原因で、クライアント サポートがわずかに少ないという欠点があります。HTTP の互換性 (冪等性など) を犠牲にすることなく、より互換性のあるアプローチはありますか?
- 個々のリスト エントリを個別のリソースとしてモデル化し、
PUT
andをDELETE
(おそらくETag
and/orと共にIf-Match
) 使用することはオプションのように思えます (PUT /lists/requiredItems/entries/3
,DELETE /lists/requiredItems/entries/1
PUT /lists/requiredItems/revision
)。しかし、更新チェーンの途中でネットワークが切断されたときに、これらすべての操作が確実に適用されるようにするにはどうすればよいでしょうか? HTTP PATCH は複数のリソースで動作できますか? - リストを「バージョン管理」するためのより良い方法はありますか?おそらく暗黙のうちに、リストの更新方法も改善されますか? クライアントがリビジョン番号を決定することに注意してください。
- でリビジョン番号を照会するのは正しい
GET /lists/requiredItems?property=revision
ですか? のような別のリソースにする必要があり/lists/requiredItems/revision
ますか?別のリソースにする必要がある場合、アトミックに更新するにはどうすればよいですか (つまり、リストとリビジョンの両方が更新されるか、両方が更新されないか)? - JSON パッチで最初にリビジョン値をテストしてから、同じパッチで
3
更新することはできますか?10