[ 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.