Effective Service API Design by Elliotte Rusty Harold
Increasingly the Web isn’t just for humans and browsers. It’s for programs too. Network endpoints (often but not always HTTP based) that are designed for access by programs rather than humans form an increasingly large part of today’s computing infrastructure. Systems as diverse as Google Adsense, Amazon Web Services, Twitter, and thousands of others expose information for programmatic consumption in XML, JSON, protobufs, and other formats. This talk explores the characteristics of a useful remote API that attracts developers and business to your service. We’ll talk about addressing, encoding, documentation, client libraries, authentication, authorization, deprecation, error handling, versioning, and more. We'll explore what makes a remote API different than a local one. In particular we’ll talk about language agnosticism, the necessity for excellent documentation, and a clear commitment to clients. From the other side, we’ll discover which APIs are safe and useful to depend on and which are too unstable and unreliable to build on top of. Elliotte Rusty Harold When not laboring in his secret identity of a mild-mannered software developer, Elliotte Rusty Harold lives in a secret mountaintop laboratory on a large island off the East Coast of the United States with his wife Beth and dog Thor. His open source work includes the XOM library for processing XML with Java, the Amateur Media Player, and Google Cloud Tools for Eclipse. His most recent books are Java Network Programming, 4th edition, and JavaMail API, both from O’Reilly. [OQN-8982]