Slide 1

Slide 1 text

Jim Laredo – IBM Research API Harmony @apiHarmony bit.ly/apiharmony-apistrat

Slide 2

Slide 2 text

©2015 IBM Corporation 20 November 2015 2 The storyline API Harmony Developer Recommends most relevant APIs Advisor API datasets App starts to get built API Recommends most compatible APIs Use Dev. artifacts More APIs are added to the app API bindings are enabled for platform, language Recommends development artifacts, best practices, data handling, code aids etc. Automatically load or deploy artifacts ready for use I am looking for a messaging API Cool, I would like to add payments Nice. How is authentication handled? Which package is often used for my lang.? APP Vision: become the best place to find, learn about, and use web APIs. App bit.ly/apiharmony-apistrat

Slide 3

Slide 3 text

©2015 IBM Corporation 20 November 2015 3 API Harmony builds upon a graph-based data representation development Endpoint Characteristic User (company, developer…) Application contact connection connection API invocation feature feature requirement connection connection expose provision Graph-based data model on API ecosystems • Data on APIs, their characteristics, usage, and social fabric is stored in a graph-based data model • Graph traversal / algorithms are applied on this model to derive insights for... • …consumers to identify & recommend APIs • …providers to improve their offerings (consider competition, consumer requirements etc.) • …ecosystem providers to assess and influence API offerings, usage & demand bit.ly/apiharmony-apistrat

Slide 4

Slide 4 text

©2015 IBM Corporation 20 November 2015 4 Collecting API descriptions via API miner Lead Crawled mine Validated Partially validated edit validate validate mine: change mine: no change  API miner: API description extraction from web docs & crowd-sourcing Challenges - Scale - Automation - Life-cycle bit.ly/apiharmony-apistrat

Slide 5

Slide 5 text

©2015 IBM Corporation 20 November 2015 5 Analyzing source code repositories  GitHapi: cloning GitHub for data analysis Challenges - Storing the data - Efficient large- scale processing  573,692 analyzed, 27,832,746 unique URLs  1,223,600 licenses analyzed, 183,490 with MIT license  Recent Stats:  2,126,900 Github repos discovered  1,213,935 repos cloned  17.30 TB of source code bit.ly/apiharmony-apistrat

Slide 6

Slide 6 text

©2015 IBM Corporation 20 November 2015 6 Finding APIs relies on querying the API graph API Harmony backend Node.js controllers Analysis interface CRUD interface development Endpoint Characteristic User (company, developer…) Application contact connection connection API invocation feature feature requirement connection connection expose provision Challenges - Private / hybrid views - Online updates bit.ly/apiharmony-apistrat

Slide 7

Slide 7 text

©2015 IBM Corporation 20 November 2015 7 Learn about APIs  API usage counts & usage combinations (which APIs go together) Challenges - Data collection / creation - Accuracy bit.ly/apiharmony-apistrat  Displaying Stack Overflow questions (what developers discuss about)

Slide 8

Slide 8 text

©2015 IBM Corporation 20 November 2015 8 Looking forward: Use APIs easily & effectively  Integrate development artifacts & usage mechanisms App Events apiHarmony Challenges - Collect artifacts/usage mechanisms - System integration  Best practices on using APIs Security checks Question/answer ?! Input-/output validation Error checking bit.ly/apiharmony-apistrat

Slide 9

Slide 9 text

©2015 IBM Corporation 20 November 2015 9 Conclusion  API Harmony’s vision: become the best place to find, learn and try, and use web APIs  Many benefits  Attract API consumers & providers to IBM ecosystem (Bluemix, APIm)  Learn about consumer requirements  Build knowledge on web APIs (landscape & usage, artifacts, best practices, pain points…)  Diverse challenges  Instrumentation  Understand users and needs  Hard to find, not search engine indexed (only doc), no direct link  Legal  What data can be collected, analyzed, exposed?  Perceived risks prohibit rapid iterations  Technical  Obtaining, storing, accessing large data sets (source code, graph-data…)  Static code analysis  … bit.ly/apiharmony-apistrat

Slide 10

Slide 10 text

@apiHarmony http://apiful.io WWW [email protected] bit.ly/apiharmony-apistrat