[ 
https://issues.apache.org/jira/browse/CONNECTORS-98?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12907751#action_12907751
 ] 

Karl Wright commented on CONNECTORS-98:
---------------------------------------

It occurs to me that this is also unworkable, for the same character-stuffing 
reasons:

outputconnection/execute/<command> (connection_name, arguments) -> GET 
outputconnectionrequest/<connection_name>/<command> ()

At issue is the <command> following the <connection_name>.  These would need to 
be reversed:

outputconnection/execute/<command> (connection_name, arguments) -> GET 
request/<command>/outputconnection/<connection_name> ()

or:

outputconnection/execute/<command> (connection_name, arguments) -> GET 
request/outputconnection/<command>/<connection_name> ()

Problem is that for either one of these the <command> cannot itself contain "/" 
characters, or it won't be uniquely parseable.  That limits input argument 
structure even more.  However, it is still acceptable under current usage, 
because right now we're not doing anything terribly complex with this feature.

FWIW, I think I prefer the former to the latter option.





> API should be "pure" RESTful with the API verb represented using the HTTP 
> GET/PUT/POST/DELETE methods
> -----------------------------------------------------------------------------------------------------
>
>                 Key: CONNECTORS-98
>                 URL: https://issues.apache.org/jira/browse/CONNECTORS-98
>             Project: Apache Connectors Framework
>          Issue Type: Improvement
>          Components: API
>    Affects Versions: LCF Release 0.5
>            Reporter: Jack Krupansky
>             Fix For: LCF Release 0.5
>
>
> (This was originally a comment on CONNECTORS-56 dated 7/16/2010.)
> It has come to my attention that the API would be more "pure" RESTful if the 
> API verb was represented using the HTTP GET/PUT/POST/DELETE methods and the 
> input argument identifier represented in the context path.
> So,  GET outputconnection/get \{"connection_name":_<connection_name>_\} would 
> be GET outputconnections/<connection_name>
> and GET outputconnection/delete \{"connection_name":_<connection_name>_\} 
> would be DELETE outputconnections/<connection_name>
> and GET outputconnection/list would be GET outputconnections
> and PUT outputconnection/save 
> \{"outputconnection":_<output_connection_object>_\} would be PUT 
> outputconnections/<connection_name> 
> \{"outputconnection":_<output_connection_object>_\}
> What we have today is certainly workable, but just not as "pure" as some 
> might desire. It would be better to take care of this before the initial 
> release so that we never have to answer the question of why it wasn't done as 
> a "proper" RESTful API.
> BTW, I did check to verify that an HttpServlet running under Jetty can 
> process the DELETE and PUT methods (using the doDelete and doPut method 
> overrides.)
> Also, POST should be usable as an alternative to PUT for API calls that have 
> large volumes of data.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to