Services 3 alpha released
The first alpha release of Services 3 has just been rolled and should be available for download on the project page by the time you read this. This is a full rewrite of Services from scratch, with a variety of new features and improvements. This rewrite was initially done by Hugo Wetterberg and then taken over by me for various cleanups and fixes. Services 3 includes a variety of new features and upgrades including
- Multiple endpoints - In Services 2, you could only have one endpoint per server, so if you wanted to have one set of services that was authenticated and another set that was anonymous, you were stuck. Services 3 allows unlimited endpoints, with configurable servers and authentication options.
- REST Server included in Services core - The REST server module is now included in the Services core module, and Services as a whole is moving in a more REST-centric direction in accordance with general trends. The REST server also natively handles JSON submissions and responses, rendering the JSON Server module obsolete as of version 3. XMLRPC server will also still be bundled and supported.
- Multiple authentication methods per endpoint - While authentication became pluggable in Services 2, you could still only have one authentication method per endpoint. In Services 3 you can mix and match, allowing auth modules to build on and complement each other.
- Increased consistency for service declarations - The service declarations will now be organized and named alongside standard CRUD-style operations. No longer will you wonder why there is node.get but user.view.
- Better documentation - Doxygen has been added and/or cleaned up throughout Services, and api.php files have been added to detail the usage of hooks defined by Services. Additionally a whole new set of reorganized and rewritten handbook pages have been begun created for Services 3 with the intention of making it easier for people to get involved in using and testing Services.
There's more but those are the big hits. I'm really excited about this release and I hope everyone else is too. As always with alpha-releases, we do NOT recommend this for production code at this time. There are still some gaps to be filled in, a LOT of testing to do, and a significant amount of UI cleanup. That said we do hope people will start playing with it and filing bugs. Up to this point development of Services 3 has been going on at github, but as of this alpha I'm moving everything back to drupal.org CVS so that we can increase visibility and take full advantage of the community and the issue queue.
Services 3 is currently only available for Drupal 6, however it will also be the basis of Services for Drupal 7 which is being ported as we speak. These two projects will run in parallel until release. Kyle Browning from Workhabit has graciously volunteered to lead the D7 effort and he was added as a co-maintainer today.
None of this would have been possible without the incredibly generous sponsorship we got from Adobe a couple months ago. This money allowed me to take almost two full weeks focusing on code cleanup and testing as well as writing a ton of documentation to help people get a leg up on the new version. My thanks again to Ryan Stewart for making that happen. It was a fantastic success and I hope that our relationship with Adobe continues and serves as an example for other companies who have an interest in seeing Drupal functionality developed and maintained.
Enough of me! Go forth and play!