Arthur's edits of the minutes nicely elaborates on the original comment that the principles of REST say URL's represent nouns not verbs, and the HTTP method used is the verb. Has the core team then addressed how OSLC specs should address what would be non-CRUD elements of an api? The "classic" example I've seen is a clever way out of this that we may not want to always duplicate: If the REST resources are bank accounts, how do you transfer funds from one account to the other? The answer is have an "account transfer" resource, and an account has a list of account transfers, so you can POST a new transfer to that list, thus making "a funds transfer" instead of "transferring funds". (There's a great joke from Alan Perlis whose punch line is "Any English word can be verbed"...I guess this is the converse of : Can every verb be nouned?)
But we're used to having a record of a transfer as a "thing". Not always the case with actions a service can perform on a resource. Here's a couple of examples: A modeling tool has a Model resource...you can GET it and you can PUT changes to it. But the tool allows you to "sketch" so you can PUT changes that do not follow all the rules of the type of model (you can have Java classes multiply inherit, maybe). The tool can validate the model, and give you back a list of errors. In a 3GL api, we would have a method "ValidationErrorList Model::validate()" method. How would an OSLC modeling service provide that capability? A project management tool has a WorkBreakdownStructure resource, with tasks, durations, dependencies, constraints, and resourceAssignments (which has a URL to a Resource resource---inherently a fun spec to have conversations about). The project management tool has various resource leveling algorithms. The 3GL call would be LevelingErrors WBS.level (LevelingAlogorithmEnum desiredAlgorithm). How does an OSLC modeling service allow a consumer to ask the service to level the resources using one of its algorithms. The "one of it's algorithms" probably isn't hard...a parameter of the HTTP call on the Resource resource, just like in the 3GL call, but what's the URL and HTTP verb? Do we have a standard way of translating actions into OSLC URL's? Certainly the individual actions a service provides are domain specific, so maybe this question is not something that's standard so not part of core??? Andy Berner Lead Architect, ISV Technical Enablement and Strategy IBM Rational Business Development 972 561-6599 [email protected] Ready for IBM Rational software partner program - http://www.ibm.com/isv/rational/readyfor.html |------------> | From: | |------------> >--------------------------------------------------------------------------------------------------------------------------------------------------| |Dave <[email protected]> | >--------------------------------------------------------------------------------------------------------------------------------------------------| |------------> | To: | |------------> >--------------------------------------------------------------------------------------------------------------------------------------------------| |[email protected] | >--------------------------------------------------------------------------------------------------------------------------------------------------| |------------> | Date: | |------------> >--------------------------------------------------------------------------------------------------------------------------------------------------| |03/04/2010 01:55 PM | >--------------------------------------------------------------------------------------------------------------------------------------------------| |------------> | Subject: | |------------> >--------------------------------------------------------------------------------------------------------------------------------------------------| |[oslc-core] OSLC Core WG March 4, 2010 meeting minutes posted | >--------------------------------------------------------------------------------------------------------------------------------------------------| |------------> | Sent by: | |------------> >--------------------------------------------------------------------------------------------------------------------------------------------------| |[email protected] | >--------------------------------------------------------------------------------------------------------------------------------------------------| We had a productive workgroup meeting this morning. We reviewed status, talked about collections again and walked through the parts of the Core Spec draft that cover OSLC Defined Resources and how our RDF/XML representations should be formed, especially for Query Resources. You can find the meeting minutes here: http://open-services.net/bin/view/Main/OslcCoreMeetings03032010 Also, I captured the issues raised during the meeting on our OSLC Core Spec schedule and issue tracking page here: http://open-services.net/bin/view/Main/OslcCoreV1Issues Thanks, Dave _______________________________________________ Oslc-Core mailing list [email protected] http://open-services.net/mailman/listinfo/oslc-core_open-services.net
