2016-02-27 1:02 GMT+09:00 Sean Dague <s...@dague.net>: > On 02/26/2016 10:52 AM, Chris Dent wrote: >> On Fri, 26 Feb 2016, Jay Pipes wrote: >>> On 02/26/2016 09:02 AM, Akihiro Motoki wrote: >>>> We can create a tag by PUT'ing an individual tag: >>>> What status code should be returned if a requested tag already exists? >>>> >>>> PUT /servers/1234567890/tags/qux >>>> >>>> The guideline defines 201 (+ Location header) on success. >>>> In the current neutron implementation proposed, 409 is returned >>>> when a requested tag already exists. >>> >>> 409 Conflict. >> >> /me gets some paint >> >> Stricly speaking, PUT should be idempotent so every time you put a >> qux tag on 123456789 it should return (the same) 2xx. >> >> In the real world things get messy and some implementations return >> 201 on create and some other 2xx when it is already there. It >> shouldn't be an error though. >> >> The time a 409 might be reasonable is if via a header, like an ETag, >> we have declared that qux must have a certain state before we accept >> a PUT of it. >> >> In some implementations things like 'Etag: 0' are used to say "Only >> let this PUT happen if it is a create." That's a bit of a hack but >> is useful. > > Agree. PUT is an update. The should be no issue updating an existing > tag. That should be success
Thanks. I agree PUT should be success in general. Honestly I am confused with a situation that a tag is created by PUT (not by POST) and applied the semantics around POST to PUT case. > Adding a tag should really be semantically: > > POST /servers/1234567890/tags > > to create tags and > > PUT /servers/1234567890/tags/qux to update them The above combination of POST and PUT is really easy to understand to me. Do we need to use POST to create a new tag, or can we keep using PUT to create a tag? If we keep using PUT, what status code should be returned? 201 Created is now returned for PUT operation. Is it okay to return 201 even when a tag already exists? > You should not PUT to any url that you can't GET. And it looks like GET > /servers/1234567890/tags/qux would be a 404 here. Yes, I totally agree. Akihiro > > -Sean > > -- > Sean Dague > http://dague.net > > __________________________________________________________________________ > OpenStack Development Mailing List (not for usage questions) > Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe > http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev __________________________________________________________________________ OpenStack Development Mailing List (not for usage questions) Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev