Changes

/* Why a REST API? */
== Why a REST API ? =Separation and abstraction of presentation ([[:Category:Self-Service Modules|Self-Service Modules]]) and business logic ([[:Category:Mapping (REST - LDAP)|Mapping (REST - LDAP)]]).* Faster development and test cycles for the business logic.* Smaller development packages.* Distribution of development packages to different suppliers. Support for multiple clients with the same code base:* HTML/JS/CSS for [[:Category:Self-Service Modules|Self-Service Modules]] like [[:Category:stoney conductor|stoney conductor]] or [[:Category:stoney backup|stoney backup]].* Command line interface (CLI) for easy scripting.* Integration into third party provisioning systems for resellers and partners. Automatic testing of functionality. Base for [http://en.wikipedia.org/wiki/Responsive_web_design responsive] respectively [http://www.abookapart.com/products/mobile-first Mobile First] Web-Applications/-Design. =REST API Requirements =* Non-Core API's must be able to be added without modifying the core-API.* Repository organisation:** One repository per resource?** Access to the the repositories? 
* The [http://en.wikipedia.org/wiki/REST#RESTful_web_APIs REST API] will be implemented as a first-class citizen
** It provides all the available functions and data to its clients
* The API will be based on existing, proven and tested open source modules and components, coming either from a framework are as stand alone implementations,
== stoney vm ==
<pre>
stoney vm: Virtual Machines Resource - REST API
Why a REST API?* Separation and abstraction of presentation and business logic** Faster developmenthttps:/test cycles for business logic** Smaller development packages* Support for multiple clients with the same code base** HTML/JSapi.example.com/CSS for selfcare Web GUIv1/services/vm** Command line interface for easy scripting** Integration into third party provisioning systems for resellers* Automatic testing of functionality* Base for [httphttps://enapi.wikipediaexample.orgcom/wikiv1/Responsive_web_design responsive] resp. [httpservices/vm/vmshttps://wwwapi.abookapartexample.com/productsv1/mobile-first Mobile First] Web-Applicationsservices/-Designvm/vms/3712345</pre>* How do we handle actions (start/stop/...)?* How can we avoid polling?
== Notes ==
* services vs. products
** Product: stone mail, stoney vm, stoney backup --[[User:Michael|Michael]] ([[User talk:Michael|talk]]) 09:47, 30 January 2014 (CET)
** Service: mail domains and accounts, backup accounts, virtual machines (as defined in the directory under ou=services https://api.example.com/v1/services/vm/vms
* product UIDs vs. names (<code>mail/12345678</code> vs. <code>mail/example.com</code>)
** Maybe both should work? If not, uid would be preferable, as they stay fix, even if you rename the mail account. --[[User:Michael|Michael]] ([[User talk:Michael|talk]]) 09:47, 30 January 2014 (CET)
=REST API Implementation == Yii related API modules ===:
* On the Yii PHP Framework Homepage: [http://www.yiiframework.com/extensions/?tag=rest Extensions tagged with "rest"]
** On the Yii PHP Framework Homepage: [http://www.yiiframework.com/extension/restfullyii/ RestfullYii] or on GitHub: [https://github.com/evan108108/RESTFullYii RestfullYii]
[[Category: Development]][[Category:REST API]][[Category:stoney core]]
SLB, editor, reviewer
3,368
edits