Creating Maintainable APIs: A Practical, Case-Study Approach