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 ...

Get Practical API Design now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.