POST /collection/{resourceId} + request payload
- Jos resurssi on uusi, luodaan resurssi. (=CREATE)
- Jos resurssi on olemassa, asetetaan resurssin arvoksi annettu tieto. (=UPDATE) Osittainen resurssin päivitys mahdollista.
PUT /collection + request payload
- muuten sama kuin POST mutta palvelin generoi id:n/slugin
PUT /collection + request payload
if(hasEtag() {
if (etagMatchesCurrent() {
update();
return 200; // OK
} else {
return 412; // Precondition failed
}
} else {
if (resourceExists()) {
return 409; // Conflict
} else {
create();
return 201; // Created
}
}
- virheenkäsittely puuttuu esimerkistä, riippuu esmes heittääkö kantaoperaatiot virheitä
- palautettava uusi ETag
hasEtag() If-Match -headerin olemassaolon tarkistus
etagMatchesCurrent() If-Match -headerin arvo vastaa aksessoidun resurssin ETagin arvoa
resourceExists() vastaavalle avaimelle on jo jotain tallennettu
PUT /collection/{resourceId} + mitä vain
POST /collection + mitä vain
- käytännössä batch update/insert