Services and RESTful Web APIs: An Interview with Blake Senftner
To celebrate today’s release of Services 3.0 for Drupal 6 & 7, we sat down for an interview with Blake Senftner, a Services expert who is providing our Developing RESTful Services and Web APIs training in Los Angeles on November 3, 4 & 5.
We’re also offering 10% off this training: just use coupon code SERVICES10 at checkout. The discount code expires on October 15th.
Christefano: What was it that got you interested in Services?
Blake: Well, to be honest it’s because of Services and Drupal’s other APIs that I’m using Drupal at all. I come from a 3D animation background — I did both feature films and console video games — and I needed the ability to create Web APIs for a distributed computing environment for my own startup.
C: When was that?
B: I started working with Services 6.x and the XMLRPC Server, getting the first version of my distributed environment operating with that. It worked fine and I wasn’t looking forward to the move to RESTful until a buddy at Disney Interactive sat me down and explained REST to me.
With XMLRPC, you create remotely callable functions and the logic feels very “atomic” in that you’re doing one function at a time, with no “system” or architectural framework. Within a RESTful structure, though, you’re creating and working with “resources” — which are very much like objects in an object oriented sense. Where XMLRPC is working in data, REST works on “things” that have a complete CRUD lifecycle — create, review, update, and delete operations. Just that simple CRUD framework provides a structure that makes working in REST conceptually easier.
C: Give an example of how using REST makes things easier.
B: Okay, an example would be with my XMLRPC service, I had a function that could create a 3D model. That was all it did. The same thing in REST by default supports creating, editing, deleting and updating. Just because that comes with REST and is part of the concept of REST, you automatically think in lifecycle frames of references. With an XMLRPC, all you think of is “I just want this one item.” There’s no architecture in that. There’s no lifecycle in that.
Oh, I also had a client that saw my earlier XMLRPC API and wanted something exponentially more sophisticated. Envisioning that in XMLRPC was causing me to consider a CRUD framework for XMLRPC, but luckily my buddy at Disney had that talk with me. That’s why I switched to REST.
C: When did you start working with Services 3.x?
B: I was digging through the sources, examples and issue queue as soon as a usable 3.x version was available. That was probably around September or October of last year. There may have been working versions earlier than that, but that’s when I started. The maintainers of the Services project are amazing and overworked and I hope the training we’re doing helps alleviate their workload.
C: How long did it take you to get your first “hello world” working?
B: Oh, geez. [Blake checks his email.] It looks like it was just shy of 4 weeks before I had satisfactory handshaking and then another 6 weeks before I had a full CRUD resource working with Relationships, Actions, Targeted Actions, and Authentication. Of course, I was also developing my client’s project at the same time, but the Services work was a continual focus because we had so much riding on it working.
That’s a big reason behind my offering this training. I speak with Drupal developers all the time at my Droplabs co-working space, and very few of them have the time or clients with the vision to commit the time to learn Services. Services is the key behind offering “software as a service”, as well as backends for mobile apps and console games.
C: We’re really excited to be doing this training. What do developers need to know in advance, and what do they need to bring to the training when they sign up?
B: You probably need to know at minimum how to create a basic Drupal module. To make anything interesting, you probably want to know enough to create a Forms API-driven interaction. It could be creating a custom content type or anything that exposes forms from your module. If you know that, you have everything you need to jump into Services with gusto.
Bring a laptop with a local development installation or a way to remotely access a Drupal installation where you’re a server admin and can install and deploy modules. It can be Drupal 6 or Drupal 7. Your choice.
C: Thanks for answering all my questions!
B: Sure, I hope it’s helpful. I look forward to developing with you!
Exaltation of Larks is providing this 3-day training (2 days of classroom-style training with an optional third day of hands-on mentorship on student projects) on November 3, 4 & 5, 2011. If you have any questions, visit us at http://www.larks.la/training or contact us at trainings [at] larks [dot] la and we’ll be happy to talk with you. You can also call us at 888-LARKS-LA (855-527-5752) with any questions.
Case Studies
In-depth articles and case studies detailing real-world examples of how and why we work the way we do.
News and Articles
News and announcements, as well as articles, tutorials and white papers detailing our development philosophy and design patterns.

