[ https://issues.apache.org/jira/browse/CONNECTORS-98?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12907702#action_12907702 ]
Jack Krupansky commented on CONNECTORS-98: ------------------------------------------ Karl, I did a quick read of your suggestions and mostly they seem fine, including keeping the JSON usage as is, but to be more purely RESTful the connection_name should be part of the path in those cases where it would have been a standalone name, although for PUT it was simply redundant as you noted. Another nuance is to consistently refer to outputconnections as plural. My counter-proposal: outputconnection/get (connection_name) -> GET outputconnections/<connection_name> () outputconnection/save (output_connection_object) -> PUT outputconnections (output_connection_object) outputconnection/delete (connection_name) -> DELETE outputconnections/<connection_name> () outputconnection/list () -> GET outputconnections () outputconnection/checkstatus (connection_name) -> GET outputconnections/status/<connection_name> () outputconnection/execute/<command> (connection_name, arguments) -> GET outputconnections/request/<connection_name>/<command> (arguments) Comments? > 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.