There are two ways to think about tool and interface design. In the first, the developers assume that they know best; they create a set of tools and an opinionated interface that reflects their assumptions about how the tools will be used. In the unlikely event that the developers understand the majority of use cases and manage to design an an interface that implements the most efficient solutions to most of the problems users’ face, then all’s well (as we’ve previously seen, all is usually not well).
In the second way of thinking about building tools and interfaces, developers create a set of tools and provide an interface in much the same way, but they also recognize that there might not be “one true way” of doing things: that the multiplicity of possible use cases calls for different combinations of tools used in different ways.
We’re proud of the server management interface we created with InterWorx. We’ve put a lot of work into creating an elegant and intuitive way to access the tools and services a Linux server provides. But we also appreciate the web interface isn’t the solution to every problem: server administrators and web hosts have their own ideas about how things should be done, and they like to be able script their own solutions to problems using the tools we built.
That’s why InterWorx incorporates a full coverage API that allows users to access the power of InterWorx in the way that best suits them. In fact, the InterWorx web interface is just a client running on top of the InterWorx API.The API isn’t an afterthought, it’s a fundamental part of the InterWorx application’s architecture.
The InterWorx API can be accessed from the command line, naturally, but it also includes SOAP and XML-RPC interfaces for control from remote servers. It’s relatively straightforward to build bespoke InterWorx-powered tools and automate server operations.
As with the InterWorx web application, the API is split into two parts: the NodeWorx API for server administration and the SiteWorx API for control of web hosting accounts.
We’re never shy of blowing our own trumpet, as you might have noticed, but sometimes it’s good to step back and look at what others in the field are doing.
First up: cPanel. cPanel doesn’t have an API. If you use cPanel, you’re stuck with the web application:
Next: DirectAdmin. DirectAdmin doesn’t have an API; you have no ability to access and combine its tools in the ways that best suit your needs.
Abstraction and combination are some of the most important principles of software design. The ability to abstract functionality and combine it in different ways multiplies the power of software tools. Those concepts are at the heart of InterWorx design, and our API gives our users the same power.
This post is part of a series in which we look at how InterWorx compares to other leading server management applications. There are more to come, so subscribe to the feed or follow us on Twitter or Facebook to hear the latest.