Chciałbym uzyskać porady dotyczące projektowania interfejsu API REST, który umożliwi klientom efektywne dodawanie/usuwanie dużej liczby obiektów do kolekcji.Manipulacja zbiorową kolekcją za pomocą REST (RESTful) API
Za pośrednictwem interfejsu API klienci muszą mieć możliwość dodawania elementów do kolekcji i usuwania z niej elementów, a także manipulowania istniejącymi elementami. W wielu przypadkach klient będzie chciał dokonać zbiorczej aktualizacji kolekcji, np. dodając 1000 pozycji i usuwając 500 różnych przedmiotów. Wydaje się, że klient powinien móc to zrobić w pojedynczej transakcji z serwerem, zamiast wymagać 1000 oddzielnych żądań POST i 500 DELETE.
Czy ktoś ma jakieś informacje o najlepszych praktykach lub konwencjach do osiągnięcia tego?
Moje obecne myślenie jest takie, że powinno być możliwe naniesienie obiektu reprezentującego zmianę do identyfikatora URI kolekcji, ale wydaje się to sprzeczne z HTTP 1.1 RFC, co wydaje się sugerować, że dane wysyłane w żądaniu PUT powinny być interpretowane niezależnie z danych już obecnych w URI. Oznacza to, że klient musiałby wysłać za jednym razem pełny opis nowego stanu kolekcji, który może być znacznie większy niż zmiana, lub nawet być większy niż klient wiedziałby, kiedy złożyłby wniosek.
Oczywiście, byłbym szczęśliwy, gdyby odstąpić od RFC w razie potrzeby, ale wolałbym to zrobić w sposób konwencjonalny, jeśli taka konwencja istnieje.
Czy kontrolujesz klientów za pomocą swojego API lub czy potrzebujesz obsługiwać istniejące produkty klienckie? Innymi słowy: Czy możesz zdefiniować semantykę jednostek żądań? – mkoeller