APIs 101: Everything you need to know about API design