A Practical Approach to API Design