REST conventions, HTTP semantics, versioning, error models and documentation — how to design APIs other developers enjoy using.