OK Tim do you think DELETE is a feature that:
a) developers would use
b) that Authorization servers like google would implement.

If we put it in and than have people say you have a bunch of extra stuff no 
line is going to use just to be semantically pure.  I will not be a happy bunny.

Just because HTTP has a verb we don't need to use it if we don't have a 
concrete use case.

If you say Google would implement it and use it for x or y than I would feel 
differently about it.

I don't hate DELETE though I think it is probably a bad power to give to 
clients.  

Feedback on your use case please.

John B.

On 2013-02-13, at 6:26 PM, Tim Bray <twb...@google.com> wrote:

> A DELETE is an http request that asks the server to delete something.  We 
> probably would want to avoid writing a requirement into the standard that the 
> server has to comply.  So you get back a 204 if it worked, a 404 if there is 
> no such registration, a 403 if there is but the server declines to delete, 
> etc. Seems pretty straightforward. -T
> 
> On Wed, Feb 13, 2013 at 12:18 PM, John Bradley <ve7...@ve7jtb.com> wrote:
> DELETE is removing the record not resetting it to defaults.  They are quite 
> diffrent.
> 
> I want to agree on what the expected behaviour of DELETE is.   I think we 
> have agreement on PUT and POST.
> 
> The general not in that a client can DELETE it's record is a implication I 
> don't like.  I think that is for the server to decide and if it is not 
> actually deleting it then DELETE is the wrong verb to use.
> 
> John B.
> 
> On 2013-02-13, at 3:31 PM, Nat Sakimura <sakim...@gmail.com> wrote:
> 
> > Generally speaking, mapping PUT to replace and POST to change is an
> > acceptable practice so I am fine with it.
> >
> > Now, what I still do not understand is why you think it is fine to do
> > PUT or POST and not DELETE. Doing PUT with empty content is almost the
> > same as DELETE. Could you explain?
> >
> > =nat via iPhone
> >
> > Feb 14, 2013 0:10、John Bradley <ve7...@ve7jtb.com> のメッセージ:
> >
> >> I am not violently opposed to PUT as a option that completely replaces the 
> >> resource setting all unsent claims back to the defaults.
> >>
> >> I don't have a good feeling about DELETE,  I think we still need more 
> >> discussion on what it means, what privileges it takes to invoke it etc.
> >> It could be a bad thing if we get wrong or is not implemented consistently.
> >>
> >> Personally I don't think a client should ever be able to DELETE it's 
> >> record.
> >>
> >> I think marking a client_id as pending provisioning, suspended,  revoked 
> >> etc is better and that can be done with a claim in the update endpoint.
> >>
> >> It should only be the server that deletes a record after satisfying it's 
> >> audit requirements.
> >>
> >> John B.
> >>
> >> On 2013-02-13, at 12:00 PM, Justin Richer <jric...@mitre.org> wrote:
> >>
> >>> Would it be reasonable to mark the PUT and DELETE methods as optional for 
> >>> the server to implement, but with defined semantics if they do? I want to 
> >>> keep GET and POST(create) as mandatory, as I think that's the minimal set 
> >>> of functionality required.
> >>>
> >>> -- Justin
> >>>
> >>> On 02/11/2013 08:51 PM, John Bradley wrote:
> >>>> I would always include the client_id on update.
> >>>>
> >>>> I think it is also us full to have other tokens used at the update 
> >>>> endpoint.  I can see the master token used to update all the clients it 
> >>>> has registered as part of API management.
> >>>> Relying on the registration_access_token is probably a design that will 
> >>>> cause trouble down the road.
> >>>>
> >>>> I think GET and POST are relatively clear.   I don't know about 
> >>>> expelling PUT to developers.  I think POST with a client_id to a 
> >>>> (separate discussion) update_uri works without restricting it to PUT.
> >>>>
> >>>> I think DELETE needs to be better understood.   I think a status that 
> >>>> can be set for client lifecycle is better than letting a client delete a 
> >>>> entry.
> >>>> In some cases there will be more than one instance of a client and 
> >>>> letting them know they have been turned off for a reason is better than 
> >>>> making there registration disappear.
> >>>> So for the moment I would levee out DELETE.
> >>>>
> >>>> John B.
> >>>>
> >>>> On 2013-02-11, at 6:14 PM, Justin Richer <jric...@mitre.org> wrote:
> >>>>
> >>>>> Draft -05 of OAuth Dynamic Client Registration [1] defines several 
> >>>>> operations that the client can take on its behalf as part of the 
> >>>>> registration process. These boil down to the basic CRUD operations that 
> >>>>> you find in many APIs: Create, Read, Update, Delete. Draft -00 defined 
> >>>>> only the "Create" operation, draft -01 through -04 added the "Update" 
> >>>>> operation, switched using the "operation=" parameter.
> >>>>>
> >>>>> Following several suggestions to do so on the list, the -05 draft 
> >>>>> defines these operations in terms of a RESTful API for the client. 
> >>>>> Namely:
> >>>>>
> >>>>> - HTTP POST to registration endpoint => Create (register) a new client
> >>>>> - HTTP PUT to update endpoint (with registration_access_token) => 
> >>>>> Update the registered information for this client
> >>>>> - HTTP GET to update endpoint (with registration_access_token) => read 
> >>>>> the registered information for this client
> >>>>> - HTTP DELETE to update endpoint (with registration_access_token) => 
> >>>>> Delete (unregister/de-provision) this client
> >>>>>
> >>>>> The two main issues at stake here are: the addition of the READ and 
> >>>>> DELETE methods, and the use of HTTP verbs following a RESTful design 
> >>>>> philosophy.
> >>>>>
> >>>>> Pro:
> >>>>> - RESTful APIs (with HTTP verbs to differentiate functionality) are the 
> >>>>> norm today
> >>>>> - Full lifecycle management is common and is going to be expected by 
> >>>>> many users of this protocol in the wild
> >>>>>
> >>>>> Cons:
> >>>>> - Update semantics are still under debate (full replace? patch?)
> >>>>> - Somewhat increased complexity on the server to support all operations
> >>>>> - Client has to understand all HTTP verbs for full access (though plain 
> >>>>> registration is just POST)
> >>>>>
> >>>>>
> >>>>> Alternatives include using an operational switch parameter (like the 
> >>>>> old drafts), defining separate endpoints for every action, or doing all 
> >>>>> operations on a single endpoint using verbs to switch.
> >>>>>
> >>>>> -- Justin
> >>>>>
> >>>>> [1] http://tools.ietf.org/html/draft-ietf-oauth-dyn-reg-05
> >>>>> _______________________________________________
> >>>>> OAuth mailing list
> >>>>> OAuth@ietf.org
> >>>>> https://www.ietf.org/mailman/listinfo/oauth
> >>
> >> _______________________________________________
> >> OAuth mailing list
> >> OAuth@ietf.org
> >> https://www.ietf.org/mailman/listinfo/oauth
> 
> _______________________________________________
> OAuth mailing list
> OAuth@ietf.org
> https://www.ietf.org/mailman/listinfo/oauth
> 

_______________________________________________
OAuth mailing list
OAuth@ietf.org
https://www.ietf.org/mailman/listinfo/oauth

Reply via email to