1

次の upsert を REST API に要求する適切な方法は何ですか?

フロントエンド アプリケーションへの最も要求の多いリターンに基づく NoSQL コレクションの構築に苦労しています。

次のドキュメントがあるとします。

{
    'user' : {
        'private_comments': [
            //object available only to user 1
            { 
                'id': 1,
                'bar': 'He is very good',
                '...': '...'
            },
            //object available only to user 2
            { 
                'id': 2,
                'bar': 'He is very bad',
                '...': '...'
            }
        ],
        'public_comments': '' //infos available to all users
    } 
}

要素を user.private_comments 配列にアップサートする必要があります。

https://www.rfc-editor.org/rfc/rfc6902#appendix-A.5によると、次のデータにパッチを適用する置換命令を要求できます。

{ 'op': 'replace', 'path': '/user/comments/$index', 'value': 'Actually, he is OK'}

問題は、この場合「$index」が不明であることです。

私が思いついた可能な解決策は、次の操作のようなものを作成することでした:

{ 'op': 'upsert', 'find_by': 'id', 'find': 1, 'path': '/user/comments', 'value': 'Nope, he really sucks' }

ただし、API を実装するユーザーは、PATCH 要求内で id 値を指定しないでください。この値は、受信トークンを介して既にアクセス可能であるためです。操作を次のように単純化する必要があります。

{ 'op': 'upsert', 'path': '/user/comments', 'value': 'Nope, he really sucks' }

バックエンドで処理するため、「find」変数と「find_by」変数を使用しないアップサート操作の場合、「find_by」:「id」および「find」:value_from_token?

また、ユーザーがホール ドキュメントを受信しないため、ホール ドキュメントで単純な GET/UPDATE を実行できず、更新によってデータが危険にさらされます。

4

0 に答える 0