6

短い:標準に準拠し、RESTful であり、PATCH 要求を使用してリソースのコレクションを単一のリソースだけでなく個別に更新できるようにすることは良い考えですか?

ロング:

リソースのコレクションに対するバッチのアトミック更新を有効にする方法を公開することを検討しています。例:

PATCH /url/myresources
[
    {
        "op": "add",
        "path": "/1",  // ID if the individual resource
        "value": 
        {
            ... full resource representation ...
        }
    },
    {
        "op": "remove",
        "path": "/2"
    },
    {
        "op": "replace",
        "path": "/3/name",
        "value": "New name"
    }
]

コンテキストは、商用ソリューションのパブリック API です。このような PATCH を許可する利点は、アトミック性と、リクエストのスパム送信や個別の失敗の処理などを伴わないバッチ処理のしやすさです。

https://www.rfc-editor.org/rfc/rfc6902およびhttps://www.rfc-editor.org/rfc/rfc5789に相談しましたが、これが準拠している場合、決定的な答えを見つけることができませんでした。RFC は主に「リソース」を参照していますが、リソースのコレクションもそのように扱うことができます。

これは良い考えですか?より良い代替手段はありますか?

4

1 に答える 1

2

私はこのアイデアが好きです。コレクションもリソースです。したがって、それに基づいて行動することは、完全に優れた REST です。

リクエストのセマンティックは、リクエスト本文にリストされていないPATCHすべてのサブリソースがそのまま残されることです。リストされているすべてのサブリソースは、説明どおりに変更する必要があります。はい、それは私にはいいですね。

リクエストのすべてのセグメントを 1 つのリクエストで実行できる限り、問題はないと思います。「オールインワン」リクエストと、このような単一のリクエストの両方で問題ありません。

PATCH /url/myresources/1
{
    "op": "add",
    "value": 
    {
        ... full resource representation ...
    }
}
于 2015-01-29T13:30:51.777 に答える