Separate APIs for Clients and Providers
Is there more than one type of API? Is an API for clients different from an API for implementors? “Yes” is the simple answer to both questions. This chapter explores why this is so and what the implications are for API design.
As an example, let’s imagine a fictitious API for Winamp, or in the Unix world, for the X Multimedia System (XMMS). The related player can play audio files, skip to the next song, return to the previous song, and offer a playlist. The playlist provides the possibility of adding, removing, and reordering songs. The functionality is provided for users, but is also accessible ...