Many industry experts have been talking about how APIs as the best practice to innovate rapidly and keep up with the speed of the customer. In this presentation, we will share the lessons learned from implementing an API strategy from leading innovative companies. We will cover why you need an API platform for building innovative cloud and mobile apps. We will also provide a framework for identifying, designing and operating an API platform.
Each of these points – delivering many, quickly, easily change, many models is a multiplier – each turns 1 project into many deliverables/apps.
This is in many ways “culturally driven” as much as “technology driven”.Of course the App Store follows the long tail model pioneered by Amazon Books – it’s the same thing, but for software. The difference is, we also use software within the enterprise, and the App Store is setting people’s expectations on availability, awareness, ratings, etc.
This enterprise stuff has become uncool to speak about – governance, compliance, risk management, resiliency, privacy… but it’s critical. For the obvious reasons, but also because they make sure to protect the enterprise and enable better business.
Make sure to introduce the idea of 2 perspectives – provider and consumer. The provider needs to make sure his trains can run, and that stray animals don’t get in the way. The consumers need to make sure their horses don’t break their legs on these strange tracks!
We heard why enterprise mobile For next few minutes - how
Propose a framework with 3 phasesStrategy is overarching…In the first phase –Focus on Target audienceand value Business case and business modelsIn the second the focus is on –Actually designing and implementing the APIIn the third phase, the focus is on –Operating your API platform, tracking key KPIs and making it easy for app developers to adopt your API
Decide who are your target app developersCould be internal, external or partnersDetermine the access policies and terms of serviceRate limits, breadth of access, business modelShould provide valuable function or data or service to the target audienceExpose a business capability as an API – valuable data or valuable functionExamples:The Intuit Partner Platform (IPP) enables developers to integrate with rich financial and transactional data through REST-based APIs and offers unparalleled reach through Apps.com.2 API’s one to integrate QUickBooks, second to access to financial and transactional Data From 19,000 Financial Institutions
An API not backed by great service is a kind of like lipstick on a pig – i.e. it’s still a pig
FreeDeveloper PaysDeveloper Gets PaidIndirectFacebook API is free to useDeveloper Pays (e.g. Paypal by transaction and AWS by pay as you go)Developer gets paid (affiliate)>CPA – fixed advertising rates (Amazon 4% on electronics, 10% of instant video)>CPC - The eBay Commerce Network product listings that you can display on your website are sold on a cost per click (CPC) basis to merchants. We share back with you a portion of the revenue we collect for all qualified merchant leads.>Expedia affiliate network - $2B / year 90% of all business via API’s>Signup/referral - Recurring revenue (e.g. Rdio) or one-timeIndirect Content syndicationNew York TimesNetflix with 800 devices integrationAmazon.com’s SOA+60% of tweets come from 3rd party apps built on TwitterBake it in – cruicial for long term financial viability of your API platform
As David said its not about the medium, but about the experience. API are crucial to delivering that experience.APIs are a lot like building a UI since it targets the developersMock up -> Try it out with and try it out with sample data And with feedback refine it further until the goals are metAnd that’s when you move on to implement the APIAdded benefit of test and doc is now in sync with implement
Your product (your API) needs to be credible, relevant, and differentiated. You essentially create a façade – a holistic view of what the API should be from the perspective of the app developer and end user of the apps they create. Power the API with data stubs and iterate till you are satisfied with the API. Then use mediation to integrate the API façade with the systems of record.“Design Patterns – Elements of Reusable Object-Oriented Software (Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides)
GIVE CHOICESData formatsXML, JSONProtocolsREST, SOAPSecurity/authentication optionsOAuth2, OpenID connect, HTTP basic authAdvanced optionsStreaming for low latency accessResponse CachingBatch API vs. Real-timeSupport partial response by adding optional fields in a comma delimited list. Use limit and offset to make it easy for developers to paginate objects. APPLY OCCAM’s RAZOR PRICINCIPLEIf two API’s are equivalent, simpler one is preferred – discard anything more complex
Why REST has been preferred?-> rise in use of rest->75% of all public API’s use REST (programmable web)Since REST takes advantage of the same Internet mechanisms that are used to view regular web pages resulting in faster implementations and easier for developers to understand. REST/JSON vs. XML60% of all new API’s support JSON.30% of all new API’s support only JSON.BUT a good API understands its audience-> your audience may prefer SOAP-> good examples of this are: a) exchanging documents with strategic partners b) Financial data: Strikeiron is only SOAP and Xignite in financial services (has a choice of SOAP and REST API’s)c) Salesforce provides both SOAP and REST API
Limited bandwidth, processing powerIntermittent connectivityUse JSON to allow apps to specify size of data Use GZIP to compress responsesOAuth2 to avoid password sharingCache your responses if appropriateCaching means lighter load on your data centerOr use CDN’s for faster response timesChatty APIs and how to deal with it : Netflix example-> design a REST API-> provide shortcuts for returning composite response-> consider providing an SDKTesting by simulate latency. Slow down your backend service and verify UX
Managing API Changes Dependencies & impact analysis (show pic)API versioning & backward compatibility -> Salesforce example: /services/data/v20.0/sobjects/Account -> Intuit example : /api/v1/app/BillingStatus/<appid> (show pic) Provisioning, deprecation & retirement (show lifecycle pic)Communicating your strategy
Usage and subscription tracking (show pic) - Traffic: total calls, top APIs - Developers: trending apps, top developers vs. tootal - Service: performance, error rates, availability - Marketing: dev registrations, traffic sources - Support: support tickets, response times, community metrics - Business: indirect/direct revenue, costs
Make it easy for app developersEasy to find API’s with great documentationWhat it doesFree/trial access, Fast signupClear docsCopious code examplesDeveloping the right API (Delight your developers)Make it easy for app developersEasy to Find API’s (Search pic)Great Documentation (EPA sample code page) Clear docs Copious code examples What it doesSample Apps (pics – EPA UV index, Amtrak )Free/trial access/Fast signuptools(See jmusser slides 52 and 57)
Make it easy for app developersEasy to find API’s with great documentationWhat it doesFree/trial access, Fast signupClear docsCopious code examplesDeveloping the right API (Delight your developers)Make it easy for app developersEasy to Find API’s (Search pic)Great Documentation (EPA sample code page) Clear docs Copious code examples What it doesSample Apps (pics – EPA UV index, Amtrak )Free/trial access/Fast signuptools(See jmusser slides 52 and 57)
Developer CommunityEngage with regular communication and updatesProvide a forum for developers to collaborate with their peersAnd evangelize your API.Grow your communitySponsor hackathons, if targeting public developersConduct App contests that encourage developers to dig into your API.