Мне бы хотелось получить совет по разработке REST API, который позволит клиентам эффективно добавлять/удалять большое количество объектов в коллекцию.
Через API клиенты должны иметь возможность добавлять элементы в коллекцию и удалять из нее элементы, а также манипулировать существующими элементами. Во многих случаях клиент хочет сделать массовые обновления коллекции, например. добавление 1000 предметов и удаление 500 различных предметов. Похоже, клиент должен иметь возможность сделать это за одну транзакцию с сервером, вместо того, чтобы требовать 1000 отдельных запросов POST и 500 DELETE.
Есть ли у кого-нибудь информация о лучших практиках или соглашениях для достижения этого?
Мое настоящее мышление заключается в том, что нужно иметь возможность PUT объект, представляющий изменение в URI коллекции, но это, по-видимому, противоречит HTTP 1.1 RFC, что, по-видимому, предполагает, что данные, отправленные в запросе PUT, должны интерпретироваться независимо от данных, уже присутствующих в URI. Это означает, что клиент должен был бы отправить полное описание нового состояния коллекции за один раз, что может быть намного больше, чем изменение, или даже быть больше, чем клиент будет знать, когда они сделают запрос.
Очевидно, что я был бы рад отклониться от RFC, если это необходимо, но предпочел бы делать это обычным способом, если такое соглашение существует.