[
https://issues.apache.org/jira/browse/QPID-6438?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14356693#comment-14356693
]
Alex Rudyy commented on QPID-6438:
----------------------------------
Hi Fraser,
I am sorry I missed your comment (and Rob's reply on it) and committed my
change ignorantly without accounting your suggestions.
I read through the stack overflow thread (and some of the resources referred
from it). It appears that my committed implementation is wrong. In my solution
the same URLs are used in POST request as in PUT, which seems violates the
common practice.
I am going to redo the implementation and use parent object URLs to submit POST
requests in order to create children, i.e. in order to create queue, a POST
request to virtual host should be made (/api/latest/queue/<vhostname>)
We need to use POST for object creation as they are not idempotent, thus,
preventing the user from replacing of the existing resource.
Thanks a lot for your comment and suggestions
> [Java Broker] Add support for POST method into REST interfaces in order to
> create configured objects via POST
> -------------------------------------------------------------------------------------------------------------
>
> Key: QPID-6438
> URL: https://issues.apache.org/jira/browse/QPID-6438
> Project: Qpid
> Issue Type: Improvement
> Components: Java Broker
> Affects Versions: 0.18, 0.20, 0.22, 0.24, 0.26, 0.28, 0.30, 0.32
> Reporter: Alex Rudyy
> Assignee: Alex Rudyy
> Fix For: 6.0 [Java]
>
>
> PUT method requests are used for both configured object creation and their
> updates. Our REST layer looks for ID or name( coupled with object parent) in
> order to decide whether it is an update request or not.
> Update is made when object with the same id or the same name and parent is
> found. Otherwise a new object is created.
> On creation of new configured objects(for example, virtual host nodes) the
> same name as existing object can be specified by mistake. As result, an
> update request is performed causing updating attributes in existing object
> and saving those attributes in the database. In practice, it might cause
> configuration issues, for instance,
> if user tries to create a new BDB HA VHN and specifies an existing VHN name,
> the existing VHN attributes are updated and on next broker restart a new VHN
> with a new store can be created.
> In many REST best practices it is recommended to use POST requests to create
> REST resources and PUT requests to update/create resources.
> We can use the same approach in the Qpid REST layer, i.e. send POST requests
> if we definitely want to create new objects via web management console or REST
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]