Monday, March 04, 2013

The challenges of a software API Design



Designing APIs poses multiple challenges, among them:
  • APIs are targeted at developers
  • APIs have 'stickiness'. A bad APIs is a nightmare for years as many internal and extenal apps depend on it.
  • APIs are shared by many applications, so problems can impact multiple applications (differently)
  • APIs must be discoverable, intuitive, and use consistent conventions
  • Versioning and backwards compatibility on change
  • Good (and updated/correct) documentation is required
  • Likewise, automated testing is required

But there are benefits for exposing APIs even internally:

  • hide implementation
  • reuse code
  • reduce duplication
  • easier to optimize
Exposing APIs externally has many market benefits that we'll discuss separately. Just note that all major platforms (Facebook, Linkedin, Windows/Win32) are really APIs; and being a 'platform' can be very beneficial to a provider.

No comments: