11.4.14, api happy hour wip2

42
#hAPIhour

Upload: dylan-serota

Post on 08-Aug-2015

45 views

Category:

Documents


2 download

TRANSCRIPT

#hAPIhour

© 2014 DataHero, Inc. Confidential and Proprietary

Jeff Zabel [email protected] @jczabel

DataHero delivers a self-service Cloud BI solution that enables enterprise and SMB users to analyze and visualize their SAAS-based data without IT

© 2014 DataHero, Inc. Confidential and Proprietary

WHAT WE DO

THE EMERGING CLOUD BI MARKET

DATAHERO: API EXPERTS

© 2014 DataHero, Inc. Confidential and Proprietary

© 2014 DataHero, Inc. Confidential and Proprietary

BUSINESS INTEGRATIONS

WRITTEN 26 INTEGRATIONS & COUNTING!

OPTIMIZED DATA INGEST FRAMEWORK

CUSTOM CONNECTORS •  High-speed connectors built in

collaboration with partners for optimal performance

•  Robust, extensible framework supports rapid development of new connectors

•  Secure integrations leverage partner security models for consistent data visibility

EXTENSIBLE CONNECTION FRAMEWORK

CONNECTOR

CONNECTOR

CONNECTOR

GETTING STARTED

© 2014 DataHero, Inc. Confidential and Proprietary

DEFINE YOUR API USE CASES SINGLE USER / DEVELOPER MULTIPLE USERS

EXPERIENCED DEVELOPER INEXPERIENCED DEVELOPER

HELP ME GET STARTED •  Create a friendly subdomain – developer.yourcompany.com

•  Provide a nice high level overview of your sections and some way to navigate them: •  Getting started / Quick Start •  Documentation

•  API Reference Docs •  Tutorials or Code Samples

•  Authentication •  Extras

EASY TO REGISTER

•  Make it obvious how to register my application

•  Can I use your product for free? •  If no and you want 3rd parties to develop applications, make it easy to

create a developer account •  Find the right way in your business to enable a developer or sandbox

account

•  Enable me to customize my application on your site •  Add my URLS •  Add contact information •  Upload my branding or logo

CLEAR CALL TO ACTION

LIMITATIONS / UNIQUE •  Tell me about restrictions

•  Quotas •  Rate Limits •  Terms of Service

•  Give me a clear description of your error codes & make sure even your proxies return in the appropriate api response type

•  Anything I should know that makes your API Unique •  Do you have an Export API

AUTHENTICATION

© 2014 DataHero, Inc. Confidential and Proprietary

AUTHENTICATION

API KEYS •  Allows you to generate unique

“passwords” for api usage. •  Arguably easier to implement than Oauth •  If you create this, consider allowing

unique “users” or API keys for various applications

OAUTH 2.0 •  Arguably the most secure method •  Allows users to easily revoke

applications one by one •  Provides a trusted and safe

credential page •  Allows you as the API provider to

understand how many installs a particular application has

PERSONAL EXPERIENCE Authentication is probably one of the most important parts of your API. It is your first impression. If it is difficult to get authenticated or get your application keys, it leaves a bitter taste in your mouth.

OAUTH

TIPS •  Provide different application keys for different domains

•  Prevent your keys from being used on another domain

•  Implement the optional “Revoke” token method

•  Use OAuth 2.0, but if you use 1.0, make it obvious to developers

•  Use scopes to limit access or permissions •  Create a read vs write permission •  Control access to various components

•  Configure to allow access token request via HTTP Post

IMPLEMENTATION & DOCUMENTATION

© 2014 DataHero, Inc. Confidential and Proprietary

DOCUMENTATION IT GOES WITHOUT SAYING

If authentication is your first impression, documentation is your overall appearance.

REST VS SOAP •  Base URI: http://example.com/resources •  Define the response media type: JSON, XML, etc •  Standard HTTP methods (GET, POST, PUT, DELETE)

Resource GET PUT POST DELETE Collection URI http://example.com/charts

List all the charts Replace the entire collection

Create a new entry in the collection

Delete the entire collection

Element URI http://datahero.com/chart/123

Retrieve a single chart

Replace the single member of the collection or create it if it doesn’t exist

Delete the single member of the collection

OPINION ON SOAP It’s not 1998 anymore. Move on. In our integrations, we’re seeing a movement from SOAP to REST from the “older” or more “established” technology companies

SERVICE ENDPOINTS MAKE YOUR RESPONSES RESTFUL & CLEARLY DEFINE YOUR ENDPOINTS

METHOD NAME HTTP METHOD

DESCRIPTION

RESPONSE OBJECTS CLEARY DEFINE THE RESPONSE OBJECT

ENDPOINT DETAILED DESCRIPTION EXAMPLE RESPONSE

XML OR JSON

TAKEAWAY:

Unless you really have a good reason, do yourself a favor and just use JSON.

XML •  Allows you to define an extremely rigid

data structure. •  Name spacing and extensibility •  Flexibility

JSON •  Has become the “defacto” standard

response of REST apis

•  Most new modern languages support easy parsing (Ruby, Node.js, Python)

•  Structure is easily imported into nosql databases and big data stores

•  Is more lightweight and less verbose

CLIENT LIBRARIES

•  Make it easy for less experienced developers to get started

•  Enables you to test your API if you create a generated client

•  DataHero has created 6 node.js clients for partners: •  node-eventbrite •  node-exacttarget •  node-hubspot •  node-marketo •  node-pardot •  Surveymokey

•  And contributed to even more •  node-mailchimp •  node-recurly •  node-zendesk

VERSIONING

•  JSON is awesome, but change can be hard

•  You’re going to change, so make it easy and create api versioning

•  Allow your old endpoints to survive – remember that others might not move as fast as you

DEMO ACCOUNTS

THE EMPTY STATES OF APIS Would you create a web application without good empty states? Then don’t do it with your API

COOL IDEA: Create a communal account that developers can use

COMMUNITY FORUMS ENABLE THE COMMUNITY TO HELP OUT •  Posts questions on use cases, helpful tips, bugs, etc.

•  Help guide your company on what to create next (or enable 3rd party developers to do it for you)

•  Doesn’t take much to get started, simply a Google Group or Uservoice will do

WEBHOOKS

PUSH YOUR INFORMATION OUT •  Do you have information that would be useful to provide as alerts, then use

webhooks

•  Any server can listen for these changes and then update your application accordingly

•  Make sure to create a degrading re-try mechanism on your requests

© 2014 DataHero, Inc. Confidential and Proprietary

Jeff Zabel [email protected] @jczabel WE’RE HIRING!

What’s and How’s to Eventbrite’s APIMitch Colleran & Dylan Serota

#hAPIhour

What are the different types of API approaches?

What are the different types of API approaches?

Utility APIs Ecosystem APIs

What are the different types of API approaches?

Utility APIs Ecosystem APIs“Built with…” “Built for…”

When should you create a Partner Program?

When should you create a Partner Program?

When you find Partner Market Fit

How do you get partners to build for your platform?

How do you get partners to build for your platform?

How do you get partners to build for your platform?

Know what you can offer

How do you get partners to build for your platform?

Invest in channels that matter for your partners

How can you measure your platform?

How can you measure your platform?Many different ways depending on the maturity of your platform

APP CREATION

APP CONSUMPTION

APP ENGAGEMENT

VALUE OF USERS

ACQUISITION VIA PARTNERS

How do you make partners successful?

How do you make partners successful?

Active management and continuing to tighten

relationship after launch

Thank youMitch Colleran & Dylan Serota

#hAPIhour