Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Building Consumable APIs with Auto-Generated SDKs

Sponsored · SiteGround - Reliable hosting with speed, security, and support you can count on. →
Avatar for Brian Brian
February 20, 2016

Building Consumable APIs with Auto-Generated SDKs

Development teams spend an enormous amount of time building an API. How do you know it is consumable? We'll provide a look at how the Dude takes a contract first approach to building its APIs and the benefits of auto generated SDKs.

Avatar for Brian

Brian

February 20, 2016

Other Decks in Technology

Transcript

  1. What is an API? API noun an acronym that stands

    for Application Programming Interface. It provides a mechanism by which entities can interact with collections of data.
  2. The Technical Problem “I need to send emails when things

    happen” “Easy enough, we can throw something together” “Well… It has to scale and be SOA compliant” “(╯°□°)╯︵ ┻━┻”
  3. Round 1 Design Notification API Message Processing Unified API Message

    Sending ????? “OK... Great... How do I call it from our other APIs? Umm.... Oh I know! We'll build an SDK”
  4. The Process Problem SDKs are time consuming to write 1

    week per language x 3 languages in our platform 3 person weeks
  5. Fast Forward 6 Months… “I need to schedule things” “Oh

    cool! We get to build an eventing engine!” “ ” “Don’t forget we’re contract first. Let’s checkout these companies”
  6. Contract First adjective 1. The design principal where the API

    definition and documentation is put into place before any implementation begins 2. The act of keeping software engineers in sync with one another antonyms: blame, failure, delay
  7. “These Companies” • San Francisco, CA • Open Source API

    documentation • Editor • Hosted documentation • GitHub Sync • Auckland, NZ • Auto-Generated Code from docs • Multiple Languages • Configurable per language • Excellent support
  8. Automate All the Things 1 2 1. Documentation changes 2.

    Publish documentation 3. Build starts 4. Call to generate code 5. Blueprint downloaded 6. Publish package 3 4 5 6 Apiary TeamCity MyGet Apimatic GitHub
  9. The Contract First Approach • Kickoff meeting (if necessary) •

    Contract is written and put into pull request • Once merged, development on all fronts can start
  10. The Result SDK code for each language is generated, built,

    and packaged in 18 seconds Seconds < Weeks
  11. Where do we go now? • Merge resolution • Better

    syntax validation • Local environment validation • Better strongly typed language Support • Better exception handling • Sync & Async support • Better Authentication support